Motor de roteamento open source em Java que oferece serviços de direções, isócronas, matrizes e ajuste de coordenadas à malha viária usando dados do OpenStreetMap.
Project-OSRM/osrm-backend
Mecanismo de roteamento em C++ de alto desempenho que calcula rotas, tabelas de distância, correspondência de GPS com mapas e muito mais usando dados do OpenStreetMap.
Alternativa open source a:Google Maps Platform Directions API
- Estrelas
- 8,193
- Forks
- 3,979
- Issues abertas
- 374
- Último commit
- há 4 dias
O que é?
O OSRM (Open Source Routing Machine) é um mecanismo de roteamento escrito em C++ que opera com dados da malha viária do OpenStreetMap. Ele disponibiliza seus serviços por meio de uma API HTTP, uma interface de biblioteca C++ e um wrapper para Node.js; também há um binding para Python.
O mecanismo oferece seis serviços: nearest (ajusta coordenadas à malha viária), route (caminho mais rápido entre coordenadas), table (durações ou distâncias entre todos os pares de pontos), match (ajusta trajetos GPS com ruído às vias), trip (resolve o Problema do Caixeiro-Viajante com uma heurística gulosa) e tile (gera Mapbox Vector Tiles com metadados de roteamento).
O projeto oferece dois pipelines de pré-processamento: Multi-Level Dijkstra (MLD, recomendado como padrão) e Contraction Hierarchies (CH). Há imagens Docker para começar rapidamente, e a compilação a partir do código-fonte usa vcpkg para gerenciar dependências.
Recursos principais
- 01Serviços route, nearest, table, match, trip e tile com dados do OpenStreetMap
- 02API HTTP, biblioteca C++ e bindings para Node.js e Python
- 03Pipelines de pré-processamento MLD e CH
- 04Imagens Docker para configuração rápida
- 05Perfis de roteamento personalizados por meio de scripts Lua
Casos de uso
- Criar um backend próprio de roteamento ou navegação com dados do OpenStreetMap
- Calcular grandes matrizes de tempo de viagem ou distância para logística e despacho
- Associar trajetos GPS de veículos ou dispositivos de atividade física à malha viária
- Resolver problemas pequenos de roteamento de veículos ou de ordenação de visitas no estilo TSP
Início rápido
- 1
Baixe um extrato do OpenStreetMap (exemplo de Berlim)
wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf - 2
Pré-processe o extrato com o 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
Particione o extrato (depois, execute osrm-customize da mesma forma que no README)
docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-partition /data/berlin-latest.osrm || echo "osrm-partition failed" - 4
Inicie o servidor HTTP de roteamento na porta 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 usar
- O processamento de extratos grandes do OpenStreetMap pode levar muito tempo; por exemplo, cerca de 30 minutos para um arquivo de 550 MB.
- Para compilar a partir do código-fonte, é necessário um compilador C++20, CMake 3.29 ou superior e vcpkg. A primeira configuração compila muitas dependências.
Tópicos
Perguntas frequentes
- O que é osrm-backend?
- Mecanismo de roteamento em C++ de alto desempenho que calcula rotas, tabelas de distância, correspondência de GPS com mapas e muito mais usando dados do OpenStreetMap. O OSRM (Open Source Routing Machine) é um mecanismo de roteamento escrito em C++ que opera com dados da malha viária do OpenStreetMap. Ele disponibiliza seus serviços por meio de uma API HTTP, uma interface de biblioteca C++ e um wrapper para Node.js; também há um binding para Python.
- osrm-backend é gratuito? Qual é a licença?
- osrm-backend é open source sob a licença BSD-2-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- osrm-backend ainda é mantido?
- Manutenção ativa. O último commit de osrm-backend foi em 2 de nov. de 2026.
- Para que posso usar osrm-backend?
- Criar um backend próprio de roteamento ou navegação com dados do OpenStreetMap Calcular grandes matrizes de tempo de viagem ou distância para logística e despacho Associar trajetos GPS de veículos ou dispositivos de atividade física à malha viária Resolver problemas pequenos de roteamento de veículos ou de ordenação de visitas no estilo TSP
- Como instalar osrm-backend?
- Baixe um extrato do OpenStreetMap (exemplo de Berlim): wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf Pré-processe o extrato com o 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" Particione o extrato (depois, execute osrm-customize da mesma forma que no README): docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-partition /data/berlin-latest.osrm || echo "osrm-partition failed" Inicie o servidor HTTP de roteamento na porta 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
- Onde consigo osrm-backend?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Project-OSRM/osrm-backend
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Mecanismo de roteamento open source para OpenStreetMap, disponível como biblioteca Java ou servidor web independente para consultas de rotas, isócronas e map matching.
QGIS é um sistema de informações geográficas gratuito e multiplataforma para desktop, usado para visualizar, editar, analisar e mapear dados espaciais.
Servidor de planejamento de viagens multimodais open source para transporte público com horários, combinado com bicicleta, caminhada, bicicletas compartilhadas e transporte por aplicativo.
Serviço de geocodificação open source que pesquisa dados do OpenStreetMap por nome e endereço e faz geocodificação reversa.
Um globo interativo de código aberto no navegador, com voos, navios, satélites, terremotos, trânsito e câmeras públicas em terreno 3D fotorrealista, além de controle por voz.