计算路线或路线矩阵时,您可能需要考虑路线上的任何过路费。对于部分城市,您可以计算相应币种的路线预计过路费。
如需获取路线矩阵的通行费,请参阅计算路线矩阵的通行费。
如需查看支持的收费站位置列表,请参阅 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 } ] } } } ] }