Por padrão, o método Compute Routes
da API Routes calcula um trajeto por várias paradas, chamadas de waypoints de parada, na ordem em que você as fornece.
Você pode fazer com que a API Routes otimize o trajeto fornecido reorganizando as paradas em uma ordem mais eficiente. A otimização de waypoints otimiza o tempo de viagem, mas também considera outros fatores, como distância e número de curvas, ao decidir qual rota é a mais eficiente.
Para otimizar pontos de parada
Verifique se nenhum dos pontos de parada na rota tem
via
definido comotrue
, por exemplo:{"address": "Clare,SA", "via": true}
. Para mais informações sobre pontos de parada intermediários, consulte Especificar pontos de parada intermediários.Verifique 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")
Entenda como a ordem dos pontos de referência é otimizada
Veja como a API Routes otimiza a ordem dos pontos de parada em um trajeto:
Indexa automaticamente os pontos de referência com base na ordem em que você os fornece na solicitação, começando com 0.
Otimiza a ordem dos waypoints usando os números de índice atribuídos a eles na solicitação.
Retorna a ordem otimizada dos waypoints no objeto
routes
, no campowaypoint_order
, emroutes.optimizedIntermediateWaypointIndex
.
Exemplo
Essa solicitação pede a otimização de uma rota de Adelaide, na Austrália Meridional, para cada uma das principais regiões vinícolas da Austrália Meridional e, em seguida, o retorno a 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 na solicitação, começando em 0. 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 pontos de parada fornecidos na solicitação, o serviço retorna a ordem otimizada:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]