計算路徑或路線矩陣時,建議您考量路線的所有收費。在特定城市中,您可以用合適幣別計算航線的預估過路費。
如要取得路線矩陣的收費路段,請參閱「計算路線矩陣的通行費」一文。
如需支援的收費站位置清單,請參閱 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 } ] } } } ] }