Otimizar a ordem das paradas no seu trajeto

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.

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 os waypoints

  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 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 no campo. máscara:

    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 waypoints em um trajeto:

  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

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": "Connawarra,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.optimizedIntermediateWaypointIndex' \
'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": "Connawarra,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
            ]