Per impostazione predefinita, l'API Routes restituisce la route default, che in genere è il percorso più veloce dal luogo di partenza alla destinazione. Quando richiedi alternative, l'API restituisce fino a tre route predefinite percorso. I clienti potranno quindi scegliere il percorso più adatto alle loro esigenze.
Considerazioni sulla richiesta di percorsi alternativi
Per richiedere route alternative, tieni presente le seguenti considerazioni:
Puoi richiedere percorsi alternativi solo per percorsi senza intermedia tappe. Richiesta di route alternative quando la route specifica le tappe intermedie non causano un errore. Tuttavia, nessuna alternativa vengono restituite.
La risposta contiene un massimo di tre route alternative. Tuttavia, a volte non sono disponibili route alternative, quindi la risposta contiene solo la route predefinita.
A causa dell'elaborazione aggiuntiva necessaria per calcolare route, la richiesta di route alternative può aumentare il tempo di risposta l'API.
Esempio di richiesta di route alternative
Imposta computeAlternativeRoutes
su true
per richiedere percorsi alternativi. La
l'esempio seguente mostra come richiedere route alternative in un
computeRoutes
metodo (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
duration
, distanceMeters,
e routeLabels
per ogni percorso. Il tuo
Il cliente potrà quindi utilizzare queste informazioni per scegliere il percorso da intraprendere. Per maggiori informazioni
informazioni, vedi Scegliere le informazioni da restituire.
Esempio di risposta di route alternative
Nella risposta, utilizza la proprietà array routeLabels
per identificare la copertura
percorso:
Per il percorso predefinito, la proprietà
routeLabels
contieneDEFAULT_ROUTE
.Per eventuali percorsi alternativi, la proprietà
routeLabels
contieneDEFAULT_ROUTE_ALTERNATE
.
In questo esempio, la risposta contiene la route predefinita e due alternative
route. Nota che i valori delle proprietà duration
e distanceMeters
sono diverse 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 consentire all'utente di selezionare più facilmente il percorso, aggiungi l'elemento polilinea per ogni route alla risposta. Puoi quindi visualizzare ciascuna 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 ciascuna route:
{ "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" ] } ] }