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