Establece puntos de referencia intermedios

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

Usa la propiedad de array intermediates de la computeRoutes (REST) o ComputeRoutes (gRPC), para definir hasta 25 puntos de referencia intermedios.

Para cada punto de referencia intermedio en la solicitud, el Objeto de ruta (REST) o El objeto Enruta (gRPC) en la agrega una entrada al array legs para proporcionar los detalles del esa etapa del viaje.

Cada tramo de una ruta está representado por un RouteLeg (REST) o Objeto RouteLeg (gRPC). Controla qué campos de RouteLeg se muestran con el comando máscara de campo de respuesta.

Ejemplo: establece un punto de referencia intermedio

En el siguiente ejemplo, se usa la propiedad de array intermediates para agregar un solo punto de referencia intermedio 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 especifique que se deben mostrar los siguientes campos en la respuesta:

  • routes.duration
  • routes.distanceMeters
  • routes.legs, que corresponde 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 pierna representado por un RouteLegStep (REST) o Objeto 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": [
                {
                  ...