计算路线的通行费

计算路线或路线矩阵时,您可能需要考虑路线上的所有通行费。对于部分城市,您可以使用相应币种计算路线的估算通行费。

如需获取路线矩阵的通行费,请参阅计算路线矩阵的通行费

如需查看支持的通行费位置的列表,请参阅 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
            }
          ]
        }
      }
    }
  ]
}