计算通行费

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

请参阅下文中的支持的收费地点列表。

如何计算通行费

Routes API 考虑到了司机或车辆可用的任何通行费折扣或卡券以及最便捷的付款方式,可估算估算通行费。如果指定路线没有通行费,Routes API 会显示存在不明费用的收费。

为了准确计算通行费信息,Routes API 提供了用于指定以下各项的选项:

  • 用于路线的车辆的排放类型 (VehicleEmissionType)。如果未提供排放类型,则返回汽油燃料车辆的通行费。
  • 可能适用于司机或车辆的所有通行卡 (TollPass)。如果未指定任何通行卡,则 API 会返回现金价格。
  • avoidTolls RouteModifier,以免收费路段。

使用通行卡计算通行费

在某些地区,具有通行卡的司机或车辆支付的通行卡与没有通行卡的有所不同。例如,如果您有位于美国华盛顿州西雅图的 Good To Go! 通行证,则所支付的通行费会比没有通行证时低。

某些地区(例如印度尼西亚)的道路需要收费通行证。如果没有为需要通行卡的路由指定通行卡,则不会返回任何价格。

如果您在请求中指定通行费,该 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
            }
          ]
        }
      }
    }
  ]
}

计算路线矩阵的通行费

以下示例使用 computeRouteMatrix 方法,以便在使用通行卡时,返回包含估算价格的路线的收费信息:

  • extraComputations 数组字段设置为 TOLLS 即可启用收费信息计算。

  • 使用请求的 origin 航点的 routeModifiers 字段来指定车辆类型和通行卡类型。返回的通行费基于指定车辆类型和通行证使用的价格。如果指定了多个卡券,系统会返回费用最低的价格。

  • 使用响应字段掩码将方法配置为在响应中返回通行费信息。指定 routes.travelAdvisory.tollInfo 可返回整个路由的信息。

请求路由矩阵通行费信息

curl -X POST -d '{
"origins": [
  {
    "waypoint": {
      "location": {
        "latLng": {
          "latitude":42.340173523716736,
          "longitude":-71.05997968330408
        }
      }
    },
    "routeModifiers": {
      "vehicleInfo":{
        "emissionType": "GASOLINE"
      },
      "tollPasses": [
        "US_MA_EZPASSMA",
        "US_WA_GOOD_TO_GO"
      ]
    }
  }
],
"destinations": [
  {
    "waypoint": {
      "location": {
        "latLng": {
          "latitude":42.075698891472804,
          "longitude": -72.59806562080408
        }
      }
    }
  }
],
"travelMode": "DRIVE",
"extraComputations": ["TOLLS"]
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,travel_advisory.tollInfo,duration,distanceMeters,status' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

对路线矩阵通行费信息的响应

响应包含 TollInfo (REST) 或 TollInfo (gRPC) 对象中的收费信息。

如需配置该方法以返回通行费信息,请使用响应字段掩码来设置掩码中的 travelAdvisory.tollInfo 字段。

[
  {
    "originIndex": 0,
    "destinationIndex": 0,
    "status": {},
    "distanceMeters": 150338,
    "duration": "5382s",
    "travelAdvisory": {
      "tollInfo": {
        "estimatedPrice": [
          {
            "currencyCode": "USD",
            "units": "4",
            "nanos": 400000000
           }
        ]
      }
    }
  }
]

支持的收费位置

我们目前提供以下位置的收费信息:

地区代码国家/地区州/城市/收费路段
AR 阿根廷 布宜诺斯艾利斯
澳大利亚 澳大利亚 布里斯班
澳大利亚 澳大利亚 悉尼
巴西 巴西 全国
ID 印度尼西亚 全国
印度 印度 全国
MX 墨西哥 墨西哥城
美国 美国 亚拉巴马
美国 美国 阿拉斯加
美国 美国 加利福尼亚
美国 美国 科罗拉多
美国 美国 特拉华
美国 美国 佛罗里达
美国 美国 伊利诺伊
美国 美国 爱荷华
美国 美国 印第安纳
美国 美国 堪萨斯
美国 美国 路易斯安那
美国 美国 缅因
美国 美国 马里兰州
美国 美国 马萨诸塞
美国 美国 密歇根
美国 美国 明尼苏达
美国 美国 密苏里
美国 美国 新罕布什尔
美国 美国 新泽西
美国 美国 纽约
美国 美国 北卡罗来纳
美国 美国 俄亥俄
美国 美国 宾夕法尼亚州
美国 美国 罗得岛
美国 美国 南卡罗来纳
美国 美国 得克萨斯
美国 美国 犹他
美国 美国 弗吉尼亚
美国 美国 华盛顿
美国 美国 西弗吉尼亚州

随着收费数据越来越多,此信息将更新。