Per impostazione predefinita, l'API Routes restituisce il percorso predefinito, che in genere è il percorso più veloce dall'origine alla destinazione. Quando richiedi itinerari alternativi, l'API restituisce fino a tre itinerari insieme all'itinerario predefinito. I tuoi clienti possono quindi scegliere l'itinerario più adatto alle loro esigenze.
Considerazioni quando si richiedono itinerari alternativi
Per richiedere itinerari alternativi, tieni presente le seguenti considerazioni:
La risposta contiene un massimo di tre itinerari alternativi. Tuttavia, a volte non sono disponibili itinerari alternativi, quindi la risposta contiene solo l'itinerario predefinito.
A causa dell'elaborazione aggiuntiva necessaria per calcolare gli itinerari alternativi, la richiesta di itinerari alternativi potrebbe aumentare il tempo di risposta dell'API.
Esempio di richiesta di itinerari alternativi
Imposta computeAlternativeRoutes su true per richiedere itinerari alternativi. L'
esempio seguente mostra come richiedere itinerari 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 itinerario. Il cliente può quindi utilizzare queste informazioni per scegliere l'itinerario da seguire. Per ulteriori informazioni, vedi Scegli quali informazioni restituire.
Esempio di risposta di itinerari alternativi
Nella risposta, utilizza la proprietà dell'array routeLabels per identificare l'itinerario di raggiungimento:
Per l'itinerario predefinito, la proprietà
routeLabelscontieneDEFAULT_ROUTE.Per gli itinerari alternativi, la proprietà
routeLabelscontieneDEFAULT_ROUTE_ALTERNATE.
In questo esempio, la risposta contiene l'itinerario predefinito e due itinerari alternativi. Tieni presente che i valori delle proprietà duration e distanceMeters sono diversi per ogni itinerario:
{ "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 le polilinee nella risposta
Per semplificare la selezione dell'itinerario da parte dell'utente, aggiungi la polilinea per ogni itinerario 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 itinerario:
{ "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" ] } ] }