Impostare tappe intermedi

I waypoint intermedi sono le posizioni tra l'origine e la destinazione che vuoi che il percorso attraversi. Un punto di passaggio intermedio può essere una fermata o puoi specificarlo come una località da attraversare. Per un esempio di waypoint per una fermata, consulta Impostare una fermata lungo un percorso. Per un esempio di un punto di passaggio da impostare, Impostare un punto di passaggio 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 waypoint intermedi.

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 per quel tratto del viaggio.

Ogni tratto di un percorso è rappresentato da un oggetto RouteLeg (REST) o RouteLeg (gRPC). Controlla quali campi RouteLeg restituire utilizzando la maschera dei campi di risposta.

Esempio: impostare una fermata intermedia

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

Questo esempio utilizza una maschera di 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 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": [
                {
                  ...