Definir waypoints intermediários

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 a ser percorrido. Para ver um exemplo de um waypoint, consulte Definir uma parada em um trajeto. Para ver um exemplo de um waypoint, consulte Definir ponto de passagem de um trajeto.

Use a propriedade de matriz intermediates do método computeRoutes (REST) ou o método ComputeRoutes (gRPC) para definir até 25 waypoints intermediários, no máximo.

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 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:

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