Por padrão, o método Compute Routes
da API Routes calcula uma rota por várias paradas, chamadas de pontos de referência de parada, na ordem em que você as fornece.
É possível fazer com que a API Routes otimize a rota fornecida 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 é mais eficiente.
Para otimizar pontos de referência
Verifique se nenhum dos pontos de passagem na rota tem
via
definido comotrue
, por exemplo:{"address": "Clare,SA", "via": true}
. Para mais informações sobre os waypoints intermediários, consulte Especificar waypoints 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")
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 pontos de referência usando os números de índice atribuídos a eles na solicitação.
Retorna a ordem otimizada de pontos de referência 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 referência fornecidos na solicitação, o serviço retorna a ordem otimizada:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]