計算路徑或路徑矩陣時,建議您考量路線上的任何收費。對於特定城市,您可以使用適當幣別計算路線的預估費用。
如要取得路線矩陣的收費站,請參閱「計算路線矩陣的過路費」。
如需支援的收費站地點清單,請參閱 TollPass 參考資料。
收費方式
Routes API 會計算預估通行費,並考量司機或車輛適用的任何收費折扣或通行證,以及最便利的付款方式。如果特定路線沒有收費路段,Routes API 會指出有收費不明的收費路段。
如要取得準確的預估收費金額,請務必在要求中加入下列資訊:
- 用於路線的車輛排放量類型 (
VehicleEmissionType
)。如未提供排放類型,系統會傳回汽油燃料車輛的收費。 - 所有通行費都會經過車輛和駕駛人 (
TollPass
)。API 會使用收費通行證來判斷準確的過路費,並在要求中非當地路程的通行費時傳回現金價格。 - 視需要指定避開收費路段。如要盡量避開收費道路,請將
avoidTolls
新增為RouteModifier
。
使用收費通行證計算過路費
如要使用收費通行證計算過路費,請在要求中指定任何收費通行證。接著,API 會傳回票證價格。
如果指定無效的收費通行證,系統就會忽略該票證。
如果將多個收費路段指定為陣列,API 會嘗試計算每張票證的路線價格。
通行證通行證因地區而異。
使用收費通行證的費率可能較低:在某些地區,包含收費通行證的駕駛或車輛支付的收費方式,與沒有通行證的人不同。舉例來說,如果美國華盛頓州西雅圖有「做得好!」,則通行證的價格會低於未設有通行證的美國西雅圖區域。
某些道路可能需要通行費:印尼等部分地區設有需要收費通行證的道路。如果路徑需要收費通行證,如未指定收費通行證,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 } ] } } } ] }