计算通行费

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

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

通行费的计算方式

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 墨西哥 墨西哥城
美国 United States 亚拉巴马
美国 United States 阿拉斯加
美国 United States 加利福尼亚
美国 United States 科罗拉多
美国 United States 特拉华
美国 United States 佛罗里达
美国 United States 伊利诺伊
美国 United States 爱荷华
美国 United States 印第安纳
美国 United States 堪萨斯
美国 United States 路易斯安那
美国 United States 缅因
美国 United States 马里兰州
美国 United States 马萨诸塞州
美国 United States 密歇根
美国 United States 明尼苏达
美国 United States 密苏里
美国 United States 新罕布什尔
美国 United States 新泽西
美国 United States 纽约
美国 United States 北卡罗来纳
美国 United States 俄亥俄
美国 United States 宾夕法尼亚州
美国 United States 罗得岛
美国 United States 南卡罗来纳
美国 United States 得克萨斯
美国 United States 犹他
美国 United States 弗吉尼亚
美国 United States 华盛顿
美国 United States 西弗吉尼亚州

随着可用收费数据的增多,这些信息将会更新。