Impostare tappe intermedi

Le tappe intermedie sono posizioni tra l'origine e la destinazione su cui vuoi che venga effettuato il percorso. Una tappa intermedia può essere una fermata oppure puoi specificarla come percorso. Per un esempio di tappa di una fermata, vedi Impostare una tappa lungo un percorso. Per un esempio di waypoint da passare, Imposta punto per una route da passthrough.

Utilizza la proprietà array intermediates del metodo computeRoutes (REST) o il metodo ComputeRoutes (gRPC) per definire fino a un massimo di 25 tappe intermedie.

Per ogni tappa intermedia nella richiesta, l'oggetto Route (REST) o l'oggetto Route (gRPC) nella risposta aggiunge una voce all'array legs per fornire i dettagli per quella parte del percorso.

Ogni tratto di una route è rappresentato da un oggetto RouteLeg (REST) o RouteLeg (gRPC). Controlla quali campi RouteLeg restituire utilizzando la maschera del campo di risposta.

Esempio: imposta una tappa intermedia

L'esempio seguente utilizza la proprietà array intermediates per aggiungere un singolo waypoint intermedio al corpo della richiesta POST di una route.

Questo esempio utilizza una maschera del campo di risposta nell'intestazione X-Goog-FieldMask che specifica di restituire i seguenti campi nella risposta:

  • routes.duration
  • routes.distanceMeters
  • routes.legs corrispondente all'intero oggetto RouteLeg.
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 a questa chiamata contiene l'array legs. Ogni passaggio del tratto è 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": [
                {
                  ...