Ottimizzare l'ordine delle fermate sul percorso

Sviluppatori dello Spazio economico europeo (SEE)

Per impostazione predefinita, il metodo Compute Routes dell'API Routes calcola un percorso con più fermate, chiamate tappe di sosta, nell'ordine in cui le fornisci.

Puoi chiedere all'API Routes di ottimizzare il percorso fornito riorganizzando le fermate in un ordine più efficiente. L'ottimizzazione delle tappe ottimizza il tempo di percorrenza, ma considera anche altri fattori come la distanza e il numero di svolte quando decide quale percorso è il più efficiente.

Per ottimizzare le tappe

  1. Assicurati che nessuna delle tappe del percorso abbia via impostato su true, per esempio: {"address": "Clare,SA", "via": true}. Per saperne di più sulle tappe intermedie, consulta Specificare le tappe intermedie.

  2. Assicurati che routing_preference non sia impostato su TRAFFIC_AWARE_OPTIMAL.

  3. Imposta optimize_waypoint_order su true. Ad esempio:

    "optimizeWaypointOrder": "true",
  4. Specifica il campo routes.optimizedIntermediateWaypointIndex nella maschera del campo:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

Informazioni su come viene ottimizzato l'ordine delle tappe

Ecco come l'API Routes ottimizza l'ordine delle tappe in un percorso:

  1. Indicizza automaticamente le tappe in base all'ordine in cui le fornisci nella richiesta, a partire da 0.

  2. Ottimizza l'ordine delle tappe utilizzando i numeri di indice assegnati alle tappe nella richiesta.

  3. Restituisce l'ordine delle tappe ottimizzato nell'oggetto routes, nel campo waypoint_order, in routes.optimizedIntermediateWaypointIndex.

Esempio

Questa richiesta chiede l'ottimizzazione di un percorso da Adelaide, Australia Meridionale, a ciascuna delle principali regioni vinicole dell'Australia Meridionale e poi il ritorno ad 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'

L'API Routes indicizza le tappe intermedie fornite nella richiesta, a partire da 0. Ad esempio:

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Coonawarrav,SA"},
3    {"address": "McLaren+Vale,SA"}

Utilizzando i numeri di indice per le quattro tappe fornite nella richiesta, il servizio restituisce l'ordine ottimizzato:

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