Definir waypoints intermediários

Desenvolvedores do Espaço Econômico Europeu (EEE)

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 de passagem. Para ver um exemplo de ponto de referência para uma parada, consulte Definir uma parada ao longo de um trajeto. Para um exemplo de ponto de passagem, Definir ponto para uma rota de passagem.

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

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

Cada trecho de um trajeto é representado por um objeto RouteLeg (REST) ou RouteLeg (gRPC). Controle quais campos RouteLeg retornar 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 parada intermediário ao corpo da solicitação POST de um trajeto.

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