Definir waypoints intermediários

Os waypoints intermediários são locais entre a origem e o destino que você quer que o trajeto passe. Um waypoint intermediário pode ser uma parada, ou você pode especificá-lo como um local para passar. Um exemplo de waypoint para uma parada, consulte Definir uma parada ao longo de um trajeto. Veja um exemplo de um waypoint para passagem, Definir ponto de passagem de um trajeto.

Use a propriedade de matriz intermediates dos métodos computeRoutes (REST) ou ComputeRoutes (gRPC) para definir até 25 waypoints intermediários.

Para cada waypoint intermediário da solicitação, o objeto de rota (REST) ou o objeto de rota (gRPC) da resposta adiciona uma entrada à matriz legs para fornecer os detalhes do trecho da jornada.

Cada trecho de uma rota é representado por um objeto RouteLeg (REST) ou RouteLeg (gRPC). Use a máscara de campo de resposta para controlar quais campos RouteLeg serão retornados.

Exemplo: definir um waypoint intermediário

O exemplo a seguir usa a propriedade de matriz intermediates para adicionar um único waypoint intermediário ao corpo da solicitação POST de um trajeto.

Neste exemplo, usamos uma máscara de campo de resposta no cabeçalho X-Goog-FieldMask, que especifica o retorno dos seguintes campos na resposta:

  • routes.duration
  • routes.distanceMeters
  • routes.legs correspondente a todo o objeto 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'

A resposta dessa chamada contém a matriz legs. Cada etapa do trecho é representada por um objeto RouteLegStep (REST) ou 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": [
                {
                  ...