計算路線的通行費

計算路線或路線矩陣時,建議您考量路線上的任何通行費。對於特定城市,您可以計算以適當幣別計算的路線預估費用。

如要取得路線矩陣的收費路段,請參閱「計算路線矩陣的過路費」。

如需支援的收費站清單,請參閱 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
            }
          ]
        }
      }
    }
  ]
}