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
Assicurati che nessuna delle tappe del percorso abbia
viaimpostato sutrue, per esempio:{"address": "Clare,SA", "via": true}. Per saperne di più sulle tappe intermedie, consulta Specificare le tappe intermedie.Assicurati che
routing_preferencenon sia impostato suTRAFFIC_AWARE_OPTIMAL.Imposta
optimize_waypoint_ordersutrue. Ad esempio:"optimizeWaypointOrder": "true",
Specifica il campo
routes.optimizedIntermediateWaypointIndexnella 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:
Indicizza automaticamente le tappe in base all'ordine in cui le fornisci nella richiesta, a partire da 0.
Ottimizza l'ordine delle tappe utilizzando i numeri di indice assegnati alle tappe nella richiesta.
Restituisce l'ordine delle tappe ottimizzato nell'oggetto
routes, nel campowaypoint_order, inroutes.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 ]