Ottimizzare l'ordine delle fermate sul percorso

Per impostazione predefinita, il metodo Compute Routes dell'API Routes calcola un percorso attraverso più fermate, denominate tappe di sosta, nell'ordine da te indicato.

Puoi fare in modo che l'API Routes ottimizzi il percorso fornito riorganizzando le fermate in un ordine più efficiente. L'ottimizzazione dei Waypoint ottimizza i tempi di percorrenza, ma tiene in considerazione anche altri fattori come la distanza e il numero di svolte per decidere quale percorso è il più efficiente.

Per ottimizzare i punti intermedi

  1. Assicurati che nessuno dei tappe nel percorso abbia via impostato su true, ad esempio: {"address": "Clare,SA", "via": true}. Per ulteriori informazioni sui tappe intermedi, consulta la sezione Specificare i tappe intermedi.

  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 di campo:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

Informazioni sull'ottimizzazione dell'ordine dei tappe

Ecco come l'API Routes ottimizza l'ordine dei tappe in una route:

  1. Indicizza automaticamente i Waypoint in base all'ordine fornito nella richiesta, a partire da 0.

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

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

Esempio

Questa richiesta chiede l'ottimizzazione di un percorso da Adelaide, nell'Australia meridionale, a ciascuna delle principali regioni vinicole dell'Australia meridionale, per poi tornare 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": "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'

L'API Routes indicizza i punti intermedi intermedi forniti nella richiesta, a partire da 0. Ad esempio:

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

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

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