InicioServiciosPortfolioDemosSobre míContacto
Volver al portfolio
En producción

Curvia

Mapas y navegación

Mapas y navegación de España 100% self-hosted: cartografía vectorial propia, routing con Valhalla, tráfico DGT en tiempo real y app Android con Android Auto.

34K líneas de código
2,7M lugares en el geocoder
40+ releases Android
1 min latencia tráfico DGT
Curvia screenshot

Sobre el proyecto

Curvia ataca el hueco que Google Maps no cubre en España: datos oficiales (IGN, DGT, CartoCiudad) fusionados con OpenStreetMap. Todo el stack es propio y self-hosted: teselas vectoriales generadas con Planetiler (1,2 GB para toda España), routing con Valhalla, geocoder con 2,7 millones de lugares en memoria e incidencias de la DGT vía DATEX II con un minuto de latencia. La app Android (Capacitor) añade guiado por voz, Android Auto y actualizaciones OTA sin pasar por la store.

Stack tecnológico

React 18TypeScriptMapLibre GLPMTiles / PlanetilerValhallaCapacitor (Android)Node 20PostgreSQLDocker

Funcionalidades clave

  • Cartografía vectorial propia de toda España (PMTiles, esquema OpenMapTiles) servida desde el propio servidor
  • Routing self-hosted con Valhalla y perfiles de vehículo, sin APIs de pago
  • Incidencias, obras y cortes de la DGT en tiempo real (DATEX II v3.7, actualización cada minuto)
  • Geocoder propio con 2,7M de lugares (OSM + Overture) y portales oficiales de CartoCiudad
  • Límites de velocidad oficiales DGT (TN-ITS) regenerados dos veces por semana
  • App Android con Android Auto, guiado por voz y actualizaciones OTA propias
  • Capas en vivo: radares, gasolineras con precios, ZBE e incendios
  • Contenedores read-only con cap_drop ALL, CSP estricta y base de datos sin puertos expuestos

Desafíos técnicos

1

Generar y servir teselas vectoriales de toda España sin depender de Google ni Mapbox

2

Poller DATEX II v3.7 de la DGT con normalización de incidencias a un minuto de latencia

3

Geocoder en memoria con 2,7M de entradas y búsqueda difusa sobre PostgreSQL afinado

¿Quieres algo similar para tu negocio?

Solicitar presupuesto
Solicitar presupuesto