计算路线的通行费

在计算路线或路线矩阵时,您可能需要将路线上的所有通行费考虑在内。对于部分城市,您可以使用相应货币计算路线的估算通行费。

如需获取路线矩阵的通行费,请参阅计算路线矩阵的通行费

如需查看支持的收费位置列表,请参阅 TollPass 参考文档。

如何计算通行费

Routes API 会计算预估通行费,将驾驶员或车辆提供的所有通行费折扣或卡券以及最方便的付款方式考虑在内。如果指定路线没有可用的通行费,则 Routes API 会指明存在收费未知的通行费。

如需获得准确的通行费估算值,请确保在请求中包含以下信息:

  • 用于路线的车辆的排放类型 (VehicleEmissionType)。如果未提供排放类型,则返回汽油车辆的通行费。
  • 车辆和司机拥有的所有通行卡都使用 (TollPass)。该 API 使用通行卡来确定准确的通行费,并在请求中的通行卡不是路线本地时返回现金价格。
  • 根据需要指定避开收费站。如果您想尽可能避开收费路段,请将 avoidTolls 添加为 RouteModifier

使用通行卡计算通行费

如需使用通行卡计算通行费,请在请求中指定所有通行卡。然后,该 API 会返回传递价格。

  • 如果您指定的通行卡无效,系统将忽略该卡券。

  • 如果以数组的形式指定多个通行卡,API 会尝试计算每个通行卡的路线价格。

通行卡的运作方式可能因地区而异。

  • 使用通行卡的收费可能会较低:在某些地区,驾驶员或持有通行卡的车辆与没有通行卡的司机或车辆支付的通行费不同。例如,如果您在美国华盛顿州西雅图有 Good To Go! 通行证,则要比没有通行证支付更低的通行费。

  • 有些道路可能需要通行费:某些地区(如印度尼西亚)的道路需要使用通行费。如果您没有为需要通行卡的路线指定通行卡,则 API 不会返回通行费。

计算路线的通行费

以下示例使用 computeRoutes 方法返回使用通行卡时包含预估价格的收费信息。在此示例中,您将执行以下操作:

  • extraComputations 数组字段设置为 TOLLS,以启用收费信息计算。

  • 使用请求的 routeModifiers 字段指定车辆类型和通行卡类型。返回的通行费基于指定车辆类型和卡券使用的价格。如果指定了多次遍历,则返回价格最低的价格。

  • 使用响应字段掩码将方法配置为在响应中返回收费信息。在此示例中,请求在响应字段掩码中包含以下属性:

    • routes.travelAdvisory.tollInfo 字段返回整个路线的信息。

    • routes.legs.travelAdvisory.tollInfo 用于返回每条路程的信息。

收费信息请求

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'

包含收费信息的响应

响应在 TollInfo (REST) 或 TollInfo (gRPC) 对象中包含有关收费的信息。在此示例中,您将返回整个路线和路线的每段路程的收费信息。

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