Le tappe intermedie sono posizioni tra l'origine e la destinazione che vuoi che l'itinerario attraversi. Una tappa intermedia può essere una fermata oppure puoi specificarla come posizione di passaggio. Per un esempio di waypoint per una fermata, vedi Impostare una fermata lungo un percorso. Per un esempio di waypoint di transito, Impostare un punto di transito per un percorso.
Utilizza la proprietà array intermediates
del metodo
computeRoutes (REST) o del metodo
ComputeRoutes (gRPC) per definire fino a un massimo di 25 tappe intermedie.
Per ogni waypoint intermedio nella richiesta, l'oggetto Route (REST) o l'oggetto Route (gRPC) nella risposta aggiunge una voce all'array legs
per fornire i dettagli di quella tratta del viaggio.
Ogni tratta di un percorso è rappresentata da un oggetto
RouteLeg (REST) o
RouteLeg (gRPC).
Controlla quali campi RouteLeg
restituire utilizzando la
maschera del campo di risposta.
Esempio: impostare una tappa intermedia
Il seguente esempio utilizza la proprietà array intermediates
per aggiungere un singolo
waypoint intermedio al corpo della richiesta POST di un percorso.
Questo esempio utilizza una maschera dei campi della risposta nell'intestazione X-Goog-FieldMask
che specifica di restituire i seguenti campi nella risposta:
routes.duration
routes.distanceMeters
routes.legs
corrispondente all'intero oggettoRouteLeg
.
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } }, "sideOfRoad": true }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "departureTime": "2022-10-15T15:01:23.045123456Z", "computeAlternativeRoutes": false, "routeModifiers": { "avoidTolls": false, "avoidHighways": false, "avoidFerries": false }, "languageCode": "en-US", "units": "IMPERIAL" }' -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' 'https://routes.googleapis.com/directions/v2:computeRoutes'
La risposta di questa chiamata contiene l'array legs
. Ogni passaggio della tratta è
rappresentato da un
oggetto RouteLegStep (REST) o
RouteLegStep (gRPC).
{ "routes": [ { "legs": [ # First leg { "distanceMeters": 207, "duration": "89s", "staticDuration": "89s", "polyline": { "encodedPolyline": "ipkcFjgchVd@@@cF]@@oCK?" }, "startLocation": { "latLng": { "latitude": 37.4197318, "longitude": -122.0826233 } }, "endLocation": { "latLng": { "latitude": 37.419734, "longitude": -122.08077919999998 } }, "steps": [ { "distanceMeters": 21, "staticDuration": "6s", "polyline": { "encodedPolyline": "ipkcFjgchVd@@" }, "startLocation": { "latLng": { "latitude": 37.4197318, "longitude": -122.0826233 } }, "endLocation": { "latLng": { "latitude": 37.41954, "longitude": -122.08262750000002 } } }, ... }, # Second leg { "distanceMeters": 598, "duration": "159s", "staticDuration": "159s", "polyline": { "encodedPolyline": "ipkcFz{bhVh@??{@xPBP?J}E{E?" }, "startLocation": { "latLng": { "latitude": 37.419734, "longitude": -122.08077919999998 } }, "endLocation": { "latLng": { "latitude": 37.417616599999995, "longitude": -122.07938820000001 } }, "steps": [ { ...