Otimizar a ordem das paradas no seu trajeto

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

  1. Certifique-se de que nenhum dos waypoints no trajeto tenha via definido como true, para exemplo: {"address": "Clare,SA", "via": true}. Para mais informações sobre os waypoints intermediários, consulte Especificar waypoints intermediários.

  2. Verifique se routing_preference não está definido como TRAFFIC_AWARE_OPTIMAL.

  3. Defina optimize_waypoint_order como true. Exemplo:

    "optimizeWaypointOrder": "true",
  4. 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:

  1. Indexa automaticamente os waypoints com base na ordem que você fornecer na solicitação, começando por 0.

  2. Otimiza a ordem dos waypoints usando os números de índice atribuído aos waypoints na solicitação.

  3. Retorna a ordem otimizada do waypoint no objeto routes, no waypoint_order, em routes.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
            ]