Establece puntos de referencia intermedios

Desarrolladores del Espacio Económico Europeo (EEE)

Los puntos de referencia intermedios son ubicaciones entre el origen y el destino por las que deseas que pase la ruta. Un punto de referencia intermedio puede ser una parada o puedes especificarlo como una ubicación de paso. Para ver un ejemplo de un punto de referencia para una parada, consulta Cómo establecer una parada en una ruta. Para ver un ejemplo de un punto de ruta de paso, consulta Cómo establecer un punto para que una ruta lo atraviese.

Usa la propiedad de array intermediates del método computeRoutes (REST) o el método ComputeRoutes (gRPC) para definir hasta un máximo de 25 puntos de ruta intermedios.

Para cada punto de ruta intermedio de la solicitud, el objeto Route (REST) o el objeto Route (gRPC) de la respuesta agrega una entrada al array legs para proporcionar los detalles de ese tramo del viaje.

Cada tramo de una ruta se representa con un objeto RouteLeg (REST) o RouteLeg (gRPC). Controla qué campos RouteLeg se devuelven con la máscara de campo de respuesta.

Ejemplo: Cómo establecer un punto de referencia intermedio

En el siguiente ejemplo, se usa la propiedad de array intermediates para agregar una sola parada intermedia al cuerpo de la solicitud POST de una ruta.

En este ejemplo, se usa una máscara de campo de respuesta en el encabezado X-Goog-FieldMask que especifica que se deben devolver los siguientes campos en la respuesta:

  • routes.duration
  • routes.distanceMeters
  • routes.legs correspondiente a todo el 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'

La respuesta de esta llamada contiene el array legs. Cada paso de la ruta se representa con un objeto RouteLegStep (REST) o 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": [
                {
                  ...