Repolode
Project-OSRM

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

    Baixe um extrato do OpenStreetMap (exemplo de Berlim)

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

QGIS é um sistema de informações geográficas gratuito e multiplataforma para desktop, usado para visualizar, editar, analisar e mapear dados espaciais.

Dados e análise#gis#mapping#geospatial
14,8 mil+48 esta semana3,6 milC++GPL-2.0Bem mantidoAtualizado há 21 horas

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.

Dados e análise#3d-globe#cesium#geospatial
63 mil+1,8 mil esta semana12,4 milJavaScriptOtherAtualizado há 22 horas