OSRM for tracing routes on the city.
198
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.
O SanappRotes tem um downloader genérico que aceita:
country|Paisstate|Pais|Estadocity|Pais|Estado|Cidadecustom|URLNo 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 usarstateem vez decity. UseOSRM_REGION_SCOPE=cityouOSRM_TARGETS=city|Brazil|Santa Catarina|Florianopolis.
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
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
Não altere o GeoServer ou Metabase em produção. Use apenas o serviço OSRM isolado.
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.
curl 'http://127.0.0.1:5000/route/v1/driving/-48.5480,-27.5969;-48.5163,-27.5945?overview=false'
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"].
cd /path/to/SanappTools
sudo docker compose -f docker-compose.yml -f docker-compose.osrm-hub.yml --profile osrm stop osrm-routed
sudo docker compose up -d no diretório SanappTools.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.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.
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
Content type
Image
Digest
sha256:35dd8a43a…
Size
38.3 MB
Last updated
6 months ago
docker pull sanappcode/osrm-brazil