Calcular tarifas de peajes para una ruta

Cuando calculas una ruta o una matriz de rutas, es posible que desees tener en cuenta las tarifas de peaje de la ruta. En ciertas ciudades, puedes calcular la tarifa estimada de una ruta en la moneda correspondiente.

Si deseas obtener peajes para una matriz de rutas, consulta Cómo calcular las tarifas de peajes de una matriz de rutas.

Si deseas ver la lista de ubicaciones de peajes admitidas, consulta la referencia de TollPass.

Cómo se calculan los peajes

La API de Routes calcula la tarifa de peaje estimada y tiene en cuenta los descuentos o pases de peajes disponibles para el conductor o el vehículo, además de las formas de pago más convenientes. Si no hay un precio de peaje disponible para una ruta determinada, la API de Routes indica la existencia de un peaje con una tarifa desconocida.

Para obtener estimaciones de peajes precisas, asegúrate de incluir la siguiente información en tu solicitud:

  • El tipo de emisión del vehículo utilizado en la ruta (VehicleEmissionType). Si no se proporciona el tipo de emisión, se devuelve el peaje de un vehículo que usa gasolina.
  • Todos los pases de peaje que tienen el vehículo y el conductor con (TollPass). La API los usa para determinar las tarifas de peajes precisas y devuelve precios en efectivo cuando los pases de peaje de la solicitud no son locales de la ruta.
  • Especifica la opción de evitar peajes, en caso de ser necesario. Si deseas evitar las rutas con peaje siempre que sea posible, agrega avoidTolls como RouteModifier.

Cómo calcular los peajes con un pase de peaje

Para calcular los peajes con un pase de peaje, debes especificarlos como parte de la solicitud. Luego, la API muestra los precios de los pases.

  • Si especificas un pase de peaje no válido, se ignorará.

  • Si se especifican varios pases de peajes como un array, la API intenta calcular el precio de la ruta para cada pase.

El comportamiento de los peajes puede variar según la región.

  • Las tarifas pueden ser más bajas con un pase de peaje: En algunas regiones, un conductor o un vehículo con un pase de peaje paga un peaje diferente al de quienes no lo tienen. Por ejemplo, si tienes un pase de peaje Good To Go! en Seattle, WA, EE.UU., el peaje será más bajo que si no tuvieras un pase.

  • Algunas rutas pueden requerir un pase de peaje: Algunas regiones, como Indonesia, tienen rutas que requieren un pase de peaje. Si no especificas un pase de peaje para una ruta en la que es obligatorio hacerlo, la API no mostrará ningún precio de peaje.

Cómo calcular las tarifas de peaje de una ruta

En el siguiente ejemplo, se usa el método computeRoutes para mostrar información de peajes con un precio estimado cuando se usa un pase de peaje. En este ejemplo, hiciste lo siguiente:

  • Establece el campo de array extraComputations en TOLLS para habilitar el cálculo de la información de peajes.

  • Especifica el tipo de vehículo y de pase de peaje en el campo routeModifiers de la solicitud. El precio de peaje que se muestra se basa en el precio que usa el tipo de vehículo y el pase especificados. Si se especifica más de un pase, se muestra el precio más económico.

  • Usa la máscara de campo de respuesta para configurar el método de devolución de información de peaje en la respuesta. En este ejemplo, la solicitud incluyó las siguientes propiedades en la máscara de campo de respuesta:

    • routes.travelAdvisory.tollInfo para mostrar información de toda la ruta.

    • routes.legs.travelAdvisory.tollInfo para mostrar la información de cada segmento

Solicitud de información de peajes

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude":42.340173523716736,
        "longitude":-71.05997968330408
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":42.075698891472804,
        "longitude": -72.59806562080408
      }
    }
  },
  "travelMode": "DRIVE",
  "extraComputations": ["TOLLS"],
  "routeModifiers":{
    "vehicleInfo":{
      "emissionType": "GASOLINE"
    },
    "tollPasses": [
      "US_MA_EZPASSMA",
      "US_WA_GOOD_TO_GO"
    ]
  }
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.travelAdvisory.tollInfo,routes.legs.travelAdvisory.tollInfo' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Respuesta que incluye información de peajes

La respuesta contiene información sobre los peajes en un objeto TollInfo (REST) o TollInfo (gRPC). En este ejemplo, devuelves información sobre peajes para toda la ruta y para cada tramo de la ruta.

{
  "routes": [
    {
      "legs": [
        {
          "travelAdvisory": {
            "tollInfo": {
              "estimatedPrice": [
                {
                  "currencyCode": "USD",
                  "units": "4",
                  "nanos": 400000000
                }
              ]
            }
          }
        }
      ],
      "distanceMeters": 150338,
      "duration": "6650s",
      "travelAdvisory": {
        "tollInfo": {
          "estimatedPrice": [
            {
              "currencyCode": "USD",
              "units": "4",
              "nanos": 400000000
            }
          ]
        }
      }
    }
  ]
}