Establece puntos de referencia intermedios

Desarrolladores del Espacio Económico Europeo (EEE)

Los puntos de referencia intermedios son ubicaciones especificadas entre el origen y el destino por las que deseas que pase la ruta.

Puedes definir hasta 25 puntos de ruta intermedios en una sola solicitud con la propiedad de array intermediates del método computeRoutes de REST o el método ComputeRoutes de gRPC.

Paradas frente a puntos de referencia de paso

Puedes configurar un punto de referencia intermedio como una parada o una ubicación de paso:

  • Parada: De forma predeterminada, el vehículo se detiene en la ubicación. Cada parada divide la ruta agregando una entrada RouteLeg al array legs en la respuesta. Para obtener más información, consulta Cómo establecer una parada en una ruta.
  • Punto de referencia de paso con "via" establecido en true: El vehículo pasa por la ubicación sin detenerse. Los puntos de referencia de paso no agregan entradas al array legs. Para obtener más información, consulta Cómo establecer un punto de paso para una ruta.

Tramos de la ruta y puntos de referencia intermedios

Para cada parada intermedia en una solicitud, la respuesta contiene un objeto RouteLeg independiente en el array routes.legs.

Por ejemplo, una ruta con un origen, una parada intermedia y un destino contiene dos tramos de ruta: * Tramo 1: Desde el origen hasta la parada intermedia. * Tramo 2: Desde la parada intermedia hasta el destino.

Ejemplo: Solicitud con una parada intermedia

En el siguiente ejemplo, se usa el array intermediates para agregar una sola parada intermedia a una ruta.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    }
  ],
  "travelMode": "DRIVE"
}' \
-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'

Respuesta con varios tramos de ruta

Debido a que el punto de referencia intermedio en la solicitud es una parada que no establece "via": true, la respuesta divide la ruta en dos tramos en el array legs:

{
  "routes": [
    {
      "distanceMeters": 805,
      "duration": "248s",
      "legs": [
        {
          "distanceMeters": 207,
          "duration": "89s",
          "startLocation": {
            "latLng": {
              "latitude": 37.4197318,
              "longitude": -122.0826233
            }
          },
          "endLocation": {
            "latLng": {
              "latitude": 37.419734,
              "longitude": -122.0807792
            }
          }
        },
        {
          "distanceMeters": 598,
          "duration": "159s",
          "startLocation": {
            "latLng": {
              "latitude": 37.419734,
              "longitude": -122.0807792
            }
          },
          "endLocation": {
            "latLng": {
              "latitude": 37.4176166,
              "longitude": -122.0793882
            }
          }
        }
      ]
    }
  ]
}