Cómo desplegar tu propio servidor de mapas OpenStreetMap con Headway
Si alguna vez has tenido que configurar tu propia infraestructura de mapas, probablemente recuerdes el dolor de cabeza. Primero configuras un servidor de teselas para renderizar el mapa base, luego conectas por separado Nominatim o Pelias para la búsqueda de direcciones, después despliegas Valhalla u OSRM para el enrutamiento, y encima intentas unirlo todo con un frontend web. Al final, una tarea simple se convierte en un desastre de una docena de servicios y archivos de configuración que no encajan entre sí.
Hace poco descubrí el repositorio Headway, cuyos autores intentaron resolver exactamente este problema. Ensamblaron un servidor de mapas listo para usar como una única solución integral lista para funcionar con datos de OpenStreetMap.
Qué hay dentro de la caja
El concepto central del proyecto es simple: dar a los desarrolladores la capacidad de poner en marcha un servicio de mapas completo con solo un par de comandos, sin tener que unir componentes manualmente.
La pila incluye:
- Mapa base con una interfaz web lista para usar para navegadores
- Geocodificador para buscar direcciones y puntos de interés (POI)
- Motor de enrutamiento
- Conjunto de configuraciones listas para más de 200 ciudades populares
El proyecto está escrito en Rust y diseñado para autohospedaje. Puedes tomar un extracto de OSM para un vecindario específico, una metrópoli o un país entero y alimentarlo con los scripts de compilación.
Cómo funcionan el enrutamiento y la búsqueda
En la etapa actual, Headway maneja las cosas básicas para las que usualmente ejecutamos estos servicios.
Primero, está la geocodificación. La barra de búsqueda te permite encontrar nombres de calles, números de edificios y establecimientos dentro del fragmento de mapa cargado.
Segundo, está el cálculo de rutas entre dos puntos. Se admiten tres modos principales de viaje:
- Peatón
- Bicicleta
- Coche
El enrutamiento de transporte público todavía está en desarrollo, así que no esperes conexiones de metro o autobús por ahora.
Requisitos del sistema y matices de compilación
No hay milagros: el procesamiento de datos geoespaciales siempre topa con los límites del hardware. Los desarrolladores advierten honestamente sobre el apetito de la pila en la documentación.
Generar los archivos de trabajo requiere una máquina con Linux o macOS (arquitectura amd64) con al menos 8 GB de RAM. Si decides compilar una región grande, necesitarás considerablemente más memoria. Durante la fase de preparación de datos, el proyecto consume temporalmente entre 50 y 100 GB de espacio en disco, así que verifica el espacio libre en el SSD de antemano.
Una vez que terminan la compilación y el procesamiento de extractos, los requisitos de recursos bajan notablemente. Ejecutar y servir consultas para una ciudad promedio necesita unos 4 GB de RAM en el servidor.
Dónde resulta útil
Desplegar una pila así tiene sentido en varios escenarios claros:
- Entornos aislados y redes air-gapped. Si una aplicación corporativa se ejecuta en un perímetro cerrado sin acceso a internet, Headway cubre la necesidad de mapas externos.
- Servicios locales de entrega y logística. Cuando tu negocio está limitado a una sola ciudad o región, no tiene sentido pagar APIs de mapas comerciales para cada solicitud de geocodificación y enrutamiento.
- Proyectos personales y prototipos. Inicio rápido en una máquina local sin registrar claves de API en servicios de terceros.
- Requisitos de privacidad. Los datos sobre los movimientos de los usuarios y las consultas de búsqueda permanecen estrictamente en tu servidor.
¿Vale la pena probar?
Headway se distribuye bajo la licencia libre Apache 2.0. El proyecto tiene un objetivo claro y un concepto limpio: eliminar la tediosidad de configurar servicios geoespaciales.
Si necesitas un servidor de mapas local para una ciudad o región específica, este es un excelente candidato para probar. Comienza con uno de los 200 presets de ciudades listos para usar para evaluar el rendimiento y la usabilidad de la interfaz, y luego avanza hacia la construcción de tus propios extractos de OSM.
Proyectos relacionados