計算路線或路線矩陣時,您可能需要考量路線上的過路費。在特定城市,你可以計算路線的預估通行費,並以適當幣別顯示。
如要取得路線矩陣的通行費,請參閱「計算路線矩陣的通行費」。
如需支援的收費站位置清單,請參閱「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 } ] } } } ] }