Per impostazione predefinita, le tappe intermedie sono utilizzate per fermarsi per i ritiri e gli abbandoni, ma puoi anche specificare che una tappa intermedia si riferisce passare attraverso.
Un percorso che contiene una tappa di partenza, una tappa intermedia
tappa del percorso, mentre una tappa di destinazione contiene solo un tratto di percorso che
collega l'origine e la destinazione, passando per il percorso intermedio
(denominata tappa via
).
Configura un waypoint intermedio come waypoint passthrough
Impostando la proprietà via
della tappa su true
utilizzando
Waypoint (REST) o
Waypoint (gRPC).
La proprietà via
è più efficace quando crei route in risposta a
all'utente trascinando le tappe sulla mappa. In questo modo l'utente può vedere
il percorso finale può essere visualizzato in tempo reale e aiuta a garantire che le tappe siano posizionate
in località accessibili a Compute Routes.
L'esempio seguente mostra come contrassegnare una tappa intermedia come una tappa successiva.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Accedi agli ID dei luoghi per le tappe intermedie
Se specifichi la posizione di un'origine, una destinazione o una tappa intermedia
come stringa indirizzo o come Plus Code, l'API tenta di trovare
località più pertinente con un ID luogo corrispondente. La
geocodingResults.intermediates
nei risultati contiene l'ID luogo corrispondente alla posizione
tappe, oltre a dati aggiuntivi sul luogo.
Per ogni elemento dell'array intermediates
, utilizza il metodo
Proprietà intermediateWaypointRequestIndex
per determinare quale intermedia
il waypoint nella richiesta corrisponde all'ID luogo nella risposta.
Ad esempio:
Devi specificare tre tappe intermedie in una richiesta. Due di questi Le tappe sono specificate da stringhe di indirizzo e una da latitudine/longitudine coordinate.
Includi
geocodingResults
nella maschera del campo di risposta per specificare restituiscono 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
il luogo di partenza, la destinazione e due delle tre tappe. Queste sono le
le tappe agli indici 0 e 2 della richiesta. Poiché la tappa all'indice 1 di
la richiesta sia stata specificata utilizzando le coordinate di latitudine/longitudine,
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" } ] } }