Otimizar a ordem das paradas no seu trajeto

Por padrão, o método Compute Routes da API Routes calcula um trajeto que inclui várias paradas, chamadas de waypoints com parada, na ordem em que você as forneceu.

A API Routes pode otimizar 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, para decidir qual trajeto é mais eficiente.

Otimizar waypoints

  1. Verifique se nenhum dos waypoints no trajeto tem via definido como true. Por exemplo: {"address": "Clare,SA", "via": true}. Para ver 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 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 waypoints em um trajeto:

  1. Indexa automaticamente os waypoints com base na ordem fornecida na solicitação, começando com 0.

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

  3. Retorna a ordem otimizada do waypoint no objeto routes, no campo waypoint_order, em routes.optimizedIntermediateWaypointIndex.

Exemplo

Essa solicitação solicita a otimização de um trajeto de Adelaide, Sul da Austrália, para cada uma das principais regiões vinícolas da Austrália do Sul, e depois retorna 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": "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 na solicitação, começando em 0. 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 waypoints fornecidos na solicitação, o serviço retorna a ordem otimizada:

"optimizedIntermediateWaypointIndex": [
                3,
                2,
                0,
                1
            ]