Sign inSign up

sanappcode/osrm-brazil

By sanappcode

•Updated 6 months ago

OSRM for tracing routes on the city.

Image
Integration & delivery
0

198

sanappcode/osrm-brazil repository overview

⁠Tutorial Docker OSRM

Este tutorial descreve como selecionar um mapa menor no SanappRotes, gerar uma imagem OSRM personalizada e rodar o container pronto do Docker Hub (sanappcode/osrm-brazil:latest) no SanappTools sem alterar GeoServer ou Metabase.

⁠1. Seleção de mapa no SanappRotes

O SanappRotes tem um downloader genérico que aceita:

  • country|Pais
  • state|Pais|Estado
  • city|Pais|Estado|Cidade
  • custom|URL
⁠Exemplo para Florianopolis

No arquivo SanappRotes\.env, use:

OSRM_REGION_SCOPE=city
OSRM_REGION_COUNTRY=Brazil
OSRM_REGION_STATE=Santa Catarina
OSRM_REGION_CITY=Florianopolis
OSRM_TARGETS=
OSRM_PACKAGE_NAME=
OSRM_DOWNLOAD_URL=
OSRM_CITY_BBOX=

Ou use OSRM_TARGETS em vez de OSRM_REGION_SCOPE:

OSRM_TARGETS=city|Brazil|Santa Catarina|Florianopolis
OSRM_PACKAGE_NAME=florianopolis

Se você receber o erro Nao foi possivel localizar 'Santa Catarina' no indice da Geofabrik., isso indica que o downloader está tentando usar state em vez de city. Use OSRM_REGION_SCOPE=city ou OSRM_TARGETS=city|Brazil|Santa Catarina|Florianopolis.

⁠Passos
cd C:\ProjetosPython\GitSanapp\SanappRotes
Copy-Item .env.example .env
# Edite .env conforme o exemplo acima
.\scripts\osrm-download-map.ps1
.\scripts\prepare-osrm.ps1
.\scripts\test-osrm.ps1

⁠2. Construir e publicar a imagem personalizada

Se você quiser uma imagem menor com o mapa de Florianopolis:

cd /path/to/SanappRotes
cat > Dockerfile.osrm-brazil <<'EOF'
FROM osrm/osrm-backend:latest
WORKDIR /data
COPY data/${OSRM_GRAPH_FILE:-brazil-latest.osrm} /data/
EXPOSE 5000
CMD ["osrm-routed", "--algorithm", "mld", "/data/${OSRM_GRAPH_FILE:-brazil-latest.osrm}"]
EOF

docker build -f Dockerfile.osrm-brazil -t sanappcode/osrm-brazil:florianopolis .
docker push sanappcode/osrm-brazil:florianopolis

Se você quiser usar latest diretamente:

docker pull sanappcode/osrm-brazil:latest

⁠3. Rodar o container Docker Hub no SanappTools

Não altere o GeoServer ou Metabase em produção. Use apenas o serviço OSRM isolado.

⁠Passo a passo
cd /path/to/SanappTools
sudo ./scripts/osrm-start-hub.sh

Isso usa o arquivo docker-compose.osrm-hub.yml e sobe o serviço OSRM a partir do Docker Hub.

⁠Teste
curl 'http://127.0.0.1:5000/route/v1/driving/-48.5480,-27.5969;-48.5163,-27.5945?overview=false'
⁠Alternativa: instalar artefatos menores diretamente

Se você gerou um pacote menor em SanappRotes e publicou um tarball de artefatos, use o script existente do SanappTools:

cd /path/to/SanappTools
sudo ./scripts/osrm-install-artifacts.sh "https://link-do-pacote.tar.gz"
sudo ./scripts/osrm-start.sh

Essa opção também não altera GeoServer ou Metabase, porque sobe apenas o serviço OSRM isolado via profiles: ["osrm"].

⁠4. Parar o OSRM Hub

cd /path/to/SanappTools
sudo docker compose -f docker-compose.yml -f docker-compose.osrm-hub.yml --profile osrm stop osrm-routed

⁠5. Como garantir que GeoServer/Metabase não sejam afetados

  • Não execute sudo docker compose up -d no diretório SanappTools.
  • Use apenas sudo ./scripts/osrm-start-hub.sh ou sudo docker compose -f docker-compose.yml -f docker-compose.osrm-hub.yml --profile osrm up -d osrm-routed.
  • Isso sobe apenas o serviço OSRM e não altera os containers do GeoServer ou Metabase.

⁠6. Observações sobre o erro de Geofabrik

O erro abaixo significa que a seleção atual estava usando o índice da Geofabrik (país/estado):

Nao foi possivel localizar 'Santa Catarina' no indice da Geofabrik.

Para mapas de cidade como Florianopolis, use city e não state.

⁠Exemplo correto para Florianopolis
OSRM_REGION_SCOPE=city
OSRM_REGION_COUNTRY=Brazil
OSRM_REGION_STATE=Santa Catarina
OSRM_REGION_CITY=Florianopolis

ou

OSRM_TARGETS=city|Brazil|Santa Catarina|Florianopolis

Tag summary

Content type

Image

Digest

sha256:35dd8a43a…

Size

38.3 MB

Last updated

6 months ago

docker pull sanappcode/osrm-brazil