Impostare tappe intermedi

I tappe intermedi sono posizioni tra l'origine e la destinazione che vuoi che attraversi il percorso. Un tappa intermedia può essere una fermata o specificarlo come luogo da attraversare. Per un esempio di tappe per una fermata, vedi Impostare una fermata lungo un percorso. Per un esempio di waypoint di passaggio, Imposta il punto per un percorso di passaggio.

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

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). Stabilisci quali campi RouteLeg restituire utilizzando la maschera del campo di risposta.

Esempio: impostare un 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 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 di questa chiamata contiene l'array legs. Ogni passaggio della gamba è 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": [
                {
                  ...