Repolode
Project-OSRM

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. 1

    Descarga un extracto de OpenStreetMap (ejemplo de Berlín)

    wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf
  2. 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. 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. 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

QGIS es un sistema de información geográfica de escritorio, gratuito y multiplataforma, para visualizar, editar, analizar y cartografiar datos espaciales.

Datos y analítica#gis#mapping#geospatial
14,8 mil+50 esta semana3,6 milC++GPL-2.0Bien mantenidoActualizado hace 5 horas

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.

Datos y analítica#3d-globe#cesium#geospatial
63,2 mil+1,7 mil esta semana12,4 milJavaScriptOtherActualizado hace 4 horas