Per impostazione predefinita, le tappe intermedie vengono utilizzate per le soste per i ritiri e i depositi, ma puoi anche specificare che una tappa intermedia è solo di transito.
Un itinerario che contiene un waypoint di partenza, un waypoint intermedio di transito e un waypoint di destinazione contiene un solo tratto che collega l'origine e la destinazione passando per il waypoint intermedio (chiamato via
).
Configura una waypoint intermedia come waypoint di transito impostando la proprietà via
della waypoint su true
utilizzando Waypoint (REST) o Waypoint (gRPC).
La proprietà via
è più efficace quando crei percorsi in risposta al trascinamento dei waypoint sulla mappa da parte dell'utente. In questo modo, l'utente può vedere come potrebbe essere il percorso finale in tempo reale e contribuire ad assicurare che i waypoint siano posizionati in località accessibili a Calcola percorsi.
L'esempio seguente mostra come contrassegnare una tappa intermedia come tappa intermedia.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Accedere agli ID luogo per le tappe intermedie
Se specifichi la posizione di un punto di partenza, di destinazione o intermedio come stringa di indirizzo o come plus code, l'API tenta di trovare la posizione più pertinente con un ID luogo corrispondente. L'array
geocodingResults.intermediates
nei risultati contiene l'ID luogo corrispondente alla posizione dei
check point, insieme a dati aggiuntivi sulla posizione.
Per ogni elemento dell'array intermediates
, utilizza la proprietà intermediateWaypointRequestIndex
per determinare quale waypoint intermedio nella richiesta corrisponde all'ID luogo nella risposta.
Ad esempio:
Devi specificare tre tappe intermedie in una richiesta. Due di questi waypoint sono specificati tramite stringhe di indirizzi e uno tramite coordinate di latitudine/longitudine.
Includi
geocodingResults
nella maschera del campo di risposta per specificare di restituire l'arraygeocodingResults
nei risultati.
curl -X POST -d '{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "24 Willie Mays Plaza, San Francisco, CA 94107" }, "intermediates": [ { "address": "450 Serra Mall, Stanford, CA 94305, USA" }, { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } }, { "address": "1836 El Camino Real, Redwood City, CA 94063" } ], "travelMode": "DRIVE", }' -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults' 'https://routes.googleapis.com/directions/v2:computeRoutes'
La risposta include l'array geocodingResults
contenente l'ID luogo per la partenza, la destinazione e per due dei tre waypoint. Si tratta dei waypoint agli indici 0 e 2 della richiesta. Poiché il waypoint all'indice 1 della
richiesta è stato specificato utilizzando le coordinate di latitudine/longitudine, viene
omesso dall'array geocodingResults
nella risposta.
{ "routes": [{...}], "geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, "destination": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY" }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 0, "type": [ "street_address" ], "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y" }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 2, "type": [ "premise" ], "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0" } ] } }