Definir waypoints intermediários

Os waypoints intermediários são locais entre a origem e o destino que você quer que a rota passe. Um waypoint intermediário pode ser uma parada ou pode ser especificado como um local de passagem. Para conferir um exemplo de um ponto de passagem para uma parada, consulte Definir uma parada em uma rota. Para conferir um exemplo de ponto de passagem, acesse Definir ponto de uma rota para passagem.

Use a propriedade de matriz intermediates do método computeRoutes (REST) ou do método ComputeRoutes (gRPC) para definir até 25 pontos de passagem intermediários.

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

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

Exemplo: definir um waypoint intermediário

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

Este exemplo usa 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": [
                {
                  ...