L'ottimizzazione dei waypoint è una funzionalità Routes Preferred che estende
ComputeRoutes
Ottimizza l'ordine delle tappe intermedie nel percorso di un viaggiatore,
assicurandosi che percorrano il percorso più efficiente possibile. ComputeRoutes
l'implementazione dell'ottimizzazione delle tappe supporta le seguenti modalità di viaggio:
- In auto
- Moto a due ruote
- Ciclismo
- A piedi
Perché utilizzare l'ottimizzazione delle tappe?
Quando crei un'app che guidi gli utenti attraverso una serie di tappe lungo il percorso una destinazione, è importante che il viaggiatore attraversa le tappe della nell'ordine ottimale. In questo modo il viaggiatore arriva a ogni tappa del per un periodo di tempo minore.
Come funziona
Per impostazione predefinita, ComputeRoutes
calcola un percorso attraverso le varie tappe, in ordine
in cui erano originariamente forniti. Puoi ottenere ComputeRoutes
per l'ottimizzazione
il percorso riorganizzando le tappe intermedie in un ordine più efficiente.
Riceverai un percorso con tappe ottimizzate se imposti le
campo optimizeWaypointOrder
nel corpo della richiesta a true
.
Nota: il calcolo dell'ottimizzazione delle tappe si basa principalmente sul tempo di percorrenza, ma la caratteristica prende in considerazione anche altri fattori, come la distanza e il numero di turni.
Visualizza tappe riordinate
Per ottenere un percorso con tappe riordinate, imposta il campo booleano
optimizeWaypointOrder
a true
nel corpo della richiesta di
ComputeRoutes
. Includi anche il campo optimizedIntermediateWaypointIndex
nella maschera del campo. Il corpo della risposta contiene l'ordine dei waypoint ottimizzato
i campi optimizedIntermediateWaypointIndex
.
Nota: il campo optimizedIntermediateWaypointIndex
restituisce in base zero.
e i relativi valori.
Esempio di richiesta
La richiesta di esempio seguente fornisce una route vicino a Stanford Campus universitario. Le tappe del percorso sono state indicate in sequenza nel richiesta. La richiesta contiene un'origine e una destinazione, con due tappe.
POST /v1alpha:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Server-Timeout: 10
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
"origin":{
"location":{
"latLng":{
"latitude": 37.418956,
"longitude": -122.160815
}
}
},
"intermediates": [
{
"location":{
"latLng":{
"latitude": 37.4176423,
"longitude":-122.1102246
}
}
},
{
"location":{
"latLng":{
"latitude": 37.407689,
"longitude": -122.1360597
}
}
}
],
"destination":{
"location":{
"latLng":{
"latitude": 37.4032137,
"longitude": -122.0349119
}
}
},
"travelMode": "DRIVE",
"optimizeWaypointOrder": true,
"routingPreference": "TRAFFIC_AWARE"}
Esempio di risposta
Puoi trovare gli indici waypoint intermedi riordinati nella
optimizedIntermediateWaypointIndex
campi all'interno dell'oggetto route nell'
corpo della risposta. Il polilinea codificato è lo stesso utilizzato nell'API Directions e in ComputeRoutes.
routes {
distance_meters: 17647
duration {
seconds: 1866
}
polyline {
encoded_polyline: "wkkcFvorhVU{@Ec@C}CG}@Mm@[}@i@y@[[g@_@Tk@BSjCgGfF|D\\Pv@Lj@@XaCTeC\\aCTs@`ByD`@k@h@e@x@Yh@GtADhBF|@G`AWpAs@lAsAdA{A`BmDr@cBmUqQoS}OyGmFiBsAgEwD}CaCU_@Og@@e@Hy@nGkO~@sBr@cBlDqIlByEp@}AjIfGnBbBHLLd@^p@~ErDfNrKrA~@DIhEeBTQ~AqDlE{KjBgE|FnEh@aAi@`A}FoE~AmD`A}BcAm@mHwFwD}CkLwIsDqCgF_EG[GKnCsDrA_BrC_CnCoBpEkD`EyClCsBcBeBIAkGkH]k@eJmKQKsAuA_@g@wCoDGQmEmFmIqROKaDuHvBkBxAgANCRH^f@v@dBHDD?`AUiBqEhBpEaATMCQYm@wAY]SIOByAfAwBjB_ByDaAwBiCeIA[c@aBqEuNOm@IQbA{c@p@aZFmCTuBLg@Tc@BUAKxOeV~Vy_@nBoDv@_BvAcDzA_EdG{RdC{HtIsY|B{Hx@mDbAuFdBsMbKsv@TaBf@}AdF{Sn@_DJq@Lo@aE`@]GUQmAmAQk@@g@RK`Ce@d@UDEPc@f@cCrAyGJs@X{AbIem@bA{JD_AIaAMg@o@{A_Ad@y@NaCLCsCK_FGI"
}
optimizedIntermediateWaypointIndex: 1
optimizedIntermediateWaypointIndex: 0
}
In questo esempio, puoi notare che l'ottimizzazione delle tappe inverti le fasi originali. ordine.
Pratiche consigliate
L'elaborazione di una richiesta con tappe ottimizzate richiede più tempo rispetto a un semplice routing
richiesta. Di conseguenza, consigliamo di impostare un timeout più alto per la chiamata al metodo
impostando un valore almeno dieci per l'intestazione della richiesta X-Server-Timeout
secondi. Se continui a ricevere errori di timeout, puoi aggiungere un altro secondo
e riprova.
Limiti di utilizzo
Per utilizzare l'ottimizzazione delle tappe, devi rispettare queste limitazioni di utilizzo e condizioni:
Puoi specificare fino al limite di utilizzo per i waypoint intermedi sul tuo percorso:
- Fino a 98 tappe utilizzando soltanto le coordinate di latitudine e longitudine.
- Fino a 25 tappe se specifichi le tappe utilizzando gli ID luogo.
Tutte le tappe devono essere del tipo stopover. Nessuna tappa può essere del tipo tramite.
Devi aggiungere
routes.optimizedIntermediateWaypointIndex
al campo mascherato.Se la richiesta include 25 o più tappe intermedie, deve anche adempiere alle seguenti condizioni:
La distanza retta accumulata tra tutte le tappe deve essere meno di 1000 km. Questa distanza include sia l'origine che destinazione.
La modalità di spostamento deve essere Drive.