Motor de enrutamiento de código abierto en Java que ofrece servicios de indicaciones, isócronas, matrices y ajuste de coordenadas sobre datos de OpenStreetMap.
Project-OSRM/osrm-backend
Motor de enrutamiento de alto rendimiento en C++ que calcula rutas, matrices de distancias, ajusta trazas GPS al mapa y mucho más sobre datos de OpenStreetMap.
Alternativa open source a:Google Maps Platform Directions API
- Estrellas
- 8,195
- Forks
- 3,979
- Issues abiertos
- 374
- Último commit
- hace 5 días
¿Qué es?
OSRM (Open Source Routing Machine) es un motor de enrutamiento escrito en C++ que funciona con datos de la red vial de OpenStreetMap. Ofrece sus servicios mediante una API HTTP, una interfaz de biblioteca C++ y un wrapper para Node.js; también dispone de un binding para Python.
El motor ofrece seis servicios: nearest (ajuste de coordenadas a la red vial), route (ruta más rápida entre coordenadas), table (duraciones o distancias entre todos los pares de puntos), match (ajuste de trazas GPS con ruido a las carreteras), trip (resolución del problema del viajante mediante una heurística voraz) y tile (generación de Mapbox Vector Tiles con metadatos de enrutamiento).
El proyecto admite dos flujos de preprocesamiento: Multi-Level Dijkstra (MLD, la opción predeterminada recomendada) y Contraction Hierarchies (CH). Incluye imágenes de Docker para empezar rápidamente, y la compilación desde el código fuente usa vcpkg para gestionar las dependencias.
Funciones clave
- 01Servicios route, nearest, table, match, trip y tile sobre datos de OpenStreetMap
- 02API HTTP, biblioteca C++ y bindings para Node.js y Python
- 03Flujos de preprocesamiento MLD y CH
- 04Imágenes de Docker para una configuración rápida
- 05Perfiles de enrutamiento personalizados mediante scripts Lua
Casos de uso
- Crear un backend de enrutamiento o navegación autohospedado con datos de OpenStreetMap
- Calcular matrices grandes de tiempos de viaje o distancias para logística y despacho
- Ajustar trazas GPS de vehículos o dispositivos de actividad física a la red vial
- Resolver problemas pequeños de enrutamiento de vehículos o de ordenación de visitas al estilo TSP
Inicio rápido
- 1
Descarga un extracto de OpenStreetMap (ejemplo de Berlín)
wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf - 2
Preprocesa el extracto con el perfil car usando Docker
docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf || echo "osrm-extract failed" - 3
Particiona el extracto (después, ejecuta osrm-customize del mismo modo que en el README)
docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-partition /data/berlin-latest.osrm || echo "osrm-partition failed" - 4
Inicia el servidor HTTP de enrutamiento en el puerto 5000
docker run -t -i -p 5000:5000 -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
Antes de usarlo
- Procesar extractos grandes de OpenStreetMap puede llevar mucho tiempo; por ejemplo, unos 30 minutos para un archivo de 550 MB.
- Para compilar desde el código fuente se necesita un compilador C++20, CMake 3.29 o posterior y vcpkg. La primera configuración compila muchas dependencias.
Temas
Preguntas frecuentes
- ¿Qué es osrm-backend?
- Motor de enrutamiento de alto rendimiento en C++ que calcula rutas, matrices de distancias, ajusta trazas GPS al mapa y mucho más sobre datos de OpenStreetMap. OSRM (Open Source Routing Machine) es un motor de enrutamiento escrito en C++ que funciona con datos de la red vial de OpenStreetMap. Ofrece sus servicios mediante una API HTTP, una interfaz de biblioteca C++ y un wrapper para Node.js; también dispone de un binding para Python.
- ¿osrm-backend es gratuito? ¿Qué licencia tiene?
- osrm-backend es open source bajo la licencia BSD-2-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿osrm-backend sigue mantenido?
- Mantenimiento activo. El último commit de osrm-backend fue el 2 nov 2026.
- ¿Para qué puedo usar osrm-backend?
- Crear un backend de enrutamiento o navegación autohospedado con datos de OpenStreetMap Calcular matrices grandes de tiempos de viaje o distancias para logística y despacho Ajustar trazas GPS de vehículos o dispositivos de actividad física a la red vial Resolver problemas pequeños de enrutamiento de vehículos o de ordenación de visitas al estilo TSP
- ¿Cómo se instala osrm-backend?
- Descarga un extracto de OpenStreetMap (ejemplo de Berlín): wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf Preprocesa el extracto con el perfil car usando Docker: docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf || echo "osrm-extract failed" Particiona el extracto (después, ejecuta osrm-customize del mismo modo que en el README): docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-partition /data/berlin-latest.osrm || echo "osrm-partition failed" Inicia el servidor HTTP de enrutamiento en el puerto 5000: docker run -t -i -p 5000:5000 -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
- ¿Dónde consigo osrm-backend?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Project-OSRM/osrm-backend
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Motor de rutas de código abierto para OpenStreetMap, disponible como biblioteca Java o servidor web independiente para consultas de rutas, isócronas y map matching.
QGIS es un sistema de información geográfica de escritorio, gratuito y multiplataforma, para visualizar, editar, analizar y cartografiar datos espaciales.
Servidor de código abierto para planificar viajes multimodales que combinan transporte público programado, bicicleta, caminatas, bicicletas compartidas y viajes con conductor.
Servicio de geocodificación de código abierto que busca en los datos de OpenStreetMap por nombre y dirección y ofrece geocodificación inversa.
Globo interactivo de código abierto para el navegador que combina vuelos, barcos, satélites, terremotos, tráfico y cámaras públicas en terreno 3D fotorrealista, con control por voz.