计算路线的通行费

欧洲经济区 (EEA) 开发者

在计算路线或路线矩阵时,您可能需要考虑路线上的任何通行费。 对于部分城市,您可以计算路线的估计通行费,并以适当的币种显示。

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

如需查看支持的收费地点列表,请参阅 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
            }
          ]
        }
      }
    }
  ]
}