计算路线的通行费

在计算路线或路线矩阵时, 您可能需要将路线上的通行费考虑在内。 对于部分城市,您可以 路线通行费(以相应货币计算)。

要获取路线矩阵的收费站,请参阅 计算路线矩阵的通行费

有关支持的收费位置的列表,请参阅 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
            }
          ]
        }
      }
    }
  ]
}