Per impostazione predefinita, l'API Routes restituisce il percorso predefinito, che in genere è il percorso più veloce dall'origine alla destinazione. Quando richiedi percorsi alternativi, l'API restituisce fino a tre percorsi insieme al percorso predefinito. I tuoi clienti possono quindi scegliere il percorso più adatto alle loro esigenze.
Considerazioni quando si richiedono percorsi alternativi
Per richiedere percorsi alternativi, tieni presente le seguenti considerazioni:
La risposta contiene un massimo di tre percorsi alternativi. Tuttavia, a volte non sono disponibili percorsi alternativi, quindi la risposta contiene solo il percorso predefinito.
A causa dell'elaborazione aggiuntiva necessaria per calcolare i percorsi alternativi, la richiesta di percorsi alternativi potrebbe aumentare il tempo di risposta dell'API.
Esempio di richiesta di percorsi alternativi
Imposta computeAlternativeRoutes su true per richiedere percorsi alternativi. L'
esempio seguente mostra come richiedere percorsi alternativi in una
computeRoutes (REST).
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
In questo esempio, specifichi una maschera di campo in modo che la risposta contenga solo le
duration, distanceMeters, e routeLabels proprietà per ogni percorso. Il cliente può quindi utilizzare queste informazioni per scegliere il percorso da intraprendere. Per ulteriori
informazioni, vedi Scegliere le informazioni da restituire.
Esempio di risposta di percorsi alternativi
Nella risposta, utilizza la proprietà dell'array routeLabels per identificare ogni percorso:
Per il percorso predefinito, la proprietà
routeLabelscontieneDEFAULT_ROUTE.Per tutti i percorsi alternativi, la proprietà
routeLabelscontieneDEFAULT_ROUTE_ALTERNATE.
In questo esempio, la risposta contiene il percorso predefinito e due percorsi alternativi. Tieni presente che i valori delle proprietà duration e distanceMeters sono diversi per ogni percorso:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Includere le polilinee nella risposta
Per semplificare la selezione del percorso da parte dell'utente, aggiungi la polilinea per ogni percorso alla risposta. Puoi quindi visualizzare ogni polilinea su una mappa.
Per aggiungere la polilinea, includi routes.polyline nella maschera di campo:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
La risposta contiene quindi la polilinea per ogni percorso:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }