API de roteamento com Valhalla

A algum tempo atras, precisei implementar uma ferramenta para gerar rotas rodoviárias entre 2 pontos de interesse.
Em um primeiro momento, pensei no Google Maps API, mas este é um serviço pago e então procurei alternativas OPEN SOURCE que atencessem a necessidade e foi aí que conheci o Valhalla.

O Valhalla é um mecanismo de roteamento OPEN SOURCE.

  • Geração de rotas em varias modalidades:
    • Auto;
    • pedestrian;
    • truck;
    • etc;
  • Geração de rotas evitando determinados caminhos;
  • Utilização direta no QGIS com o uso de pluguin;
  • Utilização no LeafletJS para uma interface interativa em mapa.

Uma demo da API em funcionamento pode ser vista na pagina DEMO

a documentação completa da API pode ser vista em Documentação

Abaixo um exemplo de docker-compose para a implementação de um servidor de maneira rápida.
Lembrando que na primeira execução, o processo é bem demorado pois ele irá baixar o mapa de rodovias e preparar os dados para entao deixar a API funcional.

version: '3'
services: valhalla: image: ghcr.io/gis-ops/docker-valhalla/valhalla:3.4.0 environment: - tile_urls=https://download.geofabrik.de/south-america/brazil-latest.osm.pbf - use_tiles_ignore_pbf=True - force_rebuild=False - force_rebuild_elevation=False ports: - 8002:8002 volumes: - /opt/valhalla/custom_files/:/custom_files restart: always
Enter fullscreen mode
Exit fullscreen mode

abaixo um exemplo de estruturação da chamada com os parametros que utilizo.

$queryParams = ['json' => json_encode([ 'locations' => [ ['lat' => $lat_a, 'lon' => $long_a], ['lat' => $lat_b, 'lon' => $long_b] ], 'costing' => 'pedestrian', 'narrative' => false, 'id' => 'my_second_route', //'avoid_locations' => $shapeToIgnore,//para rotas alternativas 'directions_options' => [ 'units' => 'meters', 'language' => 'pt-BR' ], ])]; $response = Http::get('http://1.2.3.4:8002/route', $queryParams);
Enter fullscreen mode
Exit fullscreen mode

Discover more from Coursity

Subscribe to get the latest posts sent to your email.

Leave a Comment

Your email address will not be published. Required fields are marked *

Discover more from Coursity

Subscribe now to keep reading and get access to the full archive.

Continue reading

Scroll to Top
Martins ad network.