Por padrão, o método Compute Routes
da API Routes calcula uma rota com várias paradas, chamadas de pontos de referência 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. 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.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 waypoints é otimizada
Veja como a API Routes otimiza a ordem dos pontos de passagem em uma rota:
Indexa automaticamente os waypoints com base na ordem que você fornecer na solicitação, começando por 0.
Otimiza a ordem dos waypoints usando os números de índice atribuído aos waypoints na solicitação.
Retorna a ordem otimizada do waypoint no objeto
routes
, nowaypoint_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 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 ]