Per impostazione predefinita, l'API Routes restituisce l'itinerario predefinito, che in genere è il più veloce dal punto di partenza alla destinazione. Quando richiedi percorsi alternativi, l'API restituisce fino a tre percorsi insieme a quello predefinito. I tuoi clienti possono quindi scegliere un itinerario che soddisfi al meglio i loro requisiti.
Considerazioni quando si richiedono percorsi alternativi
Per richiedere percorsi alternativi, tieni presente le seguenti considerazioni:
Puoi richiedere percorsi alternativi solo per i percorsi senza waypoint intermedi. La richiesta di percorsi alternativi quando il percorso specifica tappe intermedie non causa un errore. Tuttavia, non vengono restituiti percorsi alternativi.
La risposta contiene un massimo di tre itinerari 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 itinerari alternativi. L'esempio seguente mostra come richiedere percorsi alternativi in una richiesta del metodo 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 proprietà
duration
, distanceMeters,
e routeLabels
per ogni percorso. Il tuo
cliente può quindi utilizzare queste informazioni per scegliere quale percorso 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 la route di raggiungimento:
Per la route predefinita, la proprietà
routeLabels
contieneDEFAULT_ROUTE
.Per tutti i percorsi alternativi, la proprietà
routeLabels
contieneDEFAULT_ROUTE_ALTERNATE
.
In questo esempio, la risposta contiene il percorso predefinito e due percorsi alternativi. Nota 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" ] } ] }
Includi polilinee nella risposta
Per facilitare 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 del 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" ] } ] }