Por padrão, a API Routes Compute Routes
calcula um trajeto através de várias paradas, chamadas de waypoints com parada, em
na ordem em que você as enviou.
É possível fazer com que a API Routes otimize a rota fornecida reorganizando as paradas em uma ordem mais eficiente. Otimização de waypoints otimizada para viagens mas também considera outros fatores, como distância e número de curvas quando decidir qual é a rota mais eficiente.
Para otimizar pontos de referência
Certifique-se de que nenhum dos waypoints no trajeto tenha
via
definido comotrue
, para exemplo:{"address": "Clare,SA", "via": true}
. Para mais informações sobre os waypoints intermediários, consulte Especificar waypoints intermediários.Confira se
routing_preference
não está definido comoTRAFFIC_AWARE_OPTIMAL
.Defina
optimize_waypoint_order
comotrue
. Exemplo:"optimizeWaypointOrder": "true",
Especifique o campo
routes.optimizedIntermediateWaypointIndex
na máscara de campo:REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
Entender como a ordem dos pontos de passagem é otimizada
Confira como a API Routes otimiza a ordem dos pontos de passagem em uma rota:
Indexa automaticamente os waypoints com base na ordem em que eles são fornecidos na solicitação, começando com 0.
Otimiza a ordem dos waypoints usando os números de índice atribuído aos waypoints na solicitação.
Retorna a ordem otimizada de pontos de referência no objeto
routes
, no campowaypoint_order
, emroutes.optimizedIntermediateWaypointIndex
.
Exemplo
Esta solicitação pede a otimização de um trajeto de Adelaide, sul da Austrália, a cada uma das principais regiões vinícolas do Sul da Austrália e depois voltando para Adelaide.
curl -X POST -H 'content-type: application/json' -d ' { "origin": { "address": "Adelaide,SA" }, "destination": { "address": "Adelaide,SA" }, "intermediates": [ {"address": "Barossa+Valley,SA"}, {"address": "Clare,SA"}, {"address": "Coonawarra,SA"}, {"address": "McLaren+Vale,SA"} ], "travelMode": "DRIVE", "optimizeWaypointOrder": "true" }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
A API Routes indexa os waypoints intermediários fornecidos no a partir de zero. Exemplo:
0 {"address": "Barossa+Valley,SA"}, 1 {"address": "Clare,SA"}, 2 {"address": "Coonawarrav,SA"}, 3 {"address": "McLaren+Vale,SA"}
Usando os números de índice dos quatro waypoints fornecidos na solicitação, o serviço retorna a ordem otimizada:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]