Routes API 目前处于预览版阶段(正式发布前)。正式发布前产品和功能的支持可能有限,并且对正式发布前产品和功能的变更可能与其他正式发布前版本不兼容。正式发布预备产品受 Google Maps Platform 服务专用条款的约束。如需了解详情,请参阅发布阶段说明

配置环保路线

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

默认情况下,Routes API 会返回默认路线,即在不考虑燃油或能源效率的情况下。启用环保路由后,您仍然会在响应中获得默认路由。此外,您还可以返回环保路线,根据车辆的发动机类型显示最省油或最节能的路线。

路线 API 使用车辆的引擎类型以及其他因素(例如实时路况和路况)来选择环保路线。路线的燃料或能源效率越高,汽车的油耗/二氧化碳排放量就越低。

例如,柴油车在高速公路上行驶时通常发挥着极大的作用。混合动力汽车和电动汽车在走走停停的城市和山丘地带环境中行驶时,可频繁利用再生制动并从中受益,往往燃油/能源效率会逐步提高。

该 API 返回的环保路线已经过优化,可在整个路线中降低油耗。使用路线的燃料消耗估算值来比较不同的路线,而不是为您的确切车辆提供明确的燃料用量估算值。

Google 地图如何估算燃料效率

Routes API 根据美国能源部国家可再生能源实验室的分析数据和欧洲环境署的数据估算燃油效率。此计算结果中包含会影响油耗和二氧化碳排放量的因素,例如:

  • 您所在地区车辆的平均油耗或能耗
  • 路线沿途山坡陡峭程度
  • 走走停停路况模式
  • 道路类型(例如市县级道路或高速公路)

路线 API 返回最省油或最节能的路线(如果到达时间与默认路线大致相同)。如果燃料或节能太小或驾驶时间显著增加,该 API 会显示不同路线之间的相对燃料或节能,以帮助您进行比较。

不妨详细了解环保路线技术 (PDF)

前提条件

如需使用环保路由,请发出计算路由的请求:

  • 您必须将 TRAFFIC_AWARE_OPTIMAL 指定为路由偏好设置。在此模式下,服务器会对道路网执行更全面的搜索,以查找最佳路线。如需了解详情,请参阅配置质量与延迟

  • 您必须将 travelMode 设置为 DRIVE。对于任何其他出行方式,请求环保路线会返回错误。

  • 您必须在受支持的区域中为出发地航点设置位置。否则,API 会返回错误。

  • 路线不得包含中间航点。

申请环保路线

如需请求计算环保路线,请在请求中设置以下属性:

  • requestedReferenceRoutes 设置为 FUEL_EFFICIENT

  • 使用 VehicleEmissionType 中定义的值为车辆指定 emissionTypeDIESELGASOLINEELECTRICHYBRID。默认值为 GASOLINE

此外,设置一个响应字段掩码,用于指定返回与环保路线关联的响应属性:

  • routes.routeLabels: 标识每条路由:

    • 对于默认路由,routeLabels 数组属性包含 DEFAULT_ROUTE

    • 对于环保路线,routeLabels 数组属性包含 FUEL_EFFICIENT

    • 对于任何备用路线,routeLabels 数组属性都包含 DEFAULT_ROUTE_ALTERNATE

  • routes.travelAdvisory.fuelConsumptionMicroliters:整个路线的预计燃料用量(以微升为单位)。

    如果 emissionTypeHYBRID,则 API 会将电力和燃料消耗量转换为微升燃料。

    如果 emissionTypeELECTRIC,则 API 会将耗电量转换为微升燃料。

  • routes.routeToken: 可传递到 Navigation SDK 以检索自定义路由的路线令牌。

环保申请示例

以下代码显示了请求环保路线的请求。在此示例中,您将使用响应字段掩码来返回与环保路线关联的响应属性以及 routes.distanceMetersroutes.duration 属性:

curl -X POST -H 'content-type: application/json' -d '{
  "origin": {
    "location": {
      "latLng": {
        "latitude": 41.76904801292959,
        "longitude": -72.67374935684933
      }
    }
  },
  "destination": {
    "location": {
      "latLng": {
        "latitude": 41.823042361105024,
        "longitude": -71.40933143059424
      }
    }
  },
  "routeModifiers": {
    "vehicleInfo": {
      "emissionType": "GASOLINE"
    }
  },
  "travelMode":"DRIVE",
  "routingPreference": "TRAFFIC_AWARE_OPTIMAL",
  "requestedReferenceRoutes": ["FUEL_EFFICIENT"]
}' 
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' 
-H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,routes.routeLabels,routes.travelAdvisory.fuelConsumptionMicroliters,routes.routeToken' 
'https://routes.googleapis.com/directions/v2:computeRoutes'

环保响应示例

上面的计算路由调用会生成包含两个路由的 JSON 响应:

{
    "routes": [
        {
            "distanceMeters": 138939,
            "duration": "5412s",
            "travelAdvisory": {
                "fuelConsumptionMicroliters": "10960841"
            },
            "routeToken": "CoYJCpoIC…0n9S1cu",
            "routeLabels": [
                "DEFAULT_ROUTE"
            ]
        },
        {
            "distanceMeters": 116887,
            "duration": "5631s",
            "travelAdvisory": {
                "fuelConsumptionMicroliters": "9302109"
            },
            "routeToken": "CuEHCu0G…xqm",
            "routeLabels": [
                "FUEL_EFFICIENT"
            ]
        }
    ]
}

如果默认路由和环保路线相同,routeLabels 属性会同时包含 DEFAULT_ROUTEFUEL_EFFICIENT:

{
  "routes": [
    {
      "distanceMeters": 45875,
      "duration": "2655s",
      "travelAdvisory": {
        "fuelConsumptionMicroliters": "1926791"
      },
      "routeToken": "CvcDCos…6I40",
      "routeLabels": [
        "DEFAULT_ROUTE",
        "FUEL_EFFICIENT"
      ]
    }
  ]
}

支持的区域

Google Maps Platform 团队一直致力于改进我们的 API 服务的国际覆盖范围。以下列表按国家/地区显示了适用于环保路线的最新覆盖范围详细信息:

  • 阿尔巴尼亚 (AL)
  • 奥地利 (AT)
  • 比利时 (BE)
  • 波斯尼亚和黑塞哥维那 (BA)
  • 保加利亚 (BG)
  • 加拿大 (CA)
  • 克罗地亚 (HR)
  • 塞浦路斯 (CY)
  • 捷克 (CZ)
  • 丹麦 (DK)
  • 爱沙尼亚 (EE)
  • 芬兰 (FI)
  • 法国(FR)
  • 德国 (DE)
  • 希腊 (GR)
  • 匈牙利 (HU)
  • 冰岛 (IS)
  • 爱尔兰 (IE)
  • 意大利(IT)
  • 科索沃 (XK)
  • 拉脱维亚 (LV)
  • 列支敦士登 (LI)
  • 立陶宛 (LT)
  • 卢森堡 (LU)
  • 马耳他 (MT)
  • 黑山 (ME)
  • 荷兰 (NL)
  • 北马其顿 (MK)
  • 挪威 (NO)
  • 波兰 (PL)
  • 葡萄牙 (PT)
  • 罗马尼亚 (RO)
  • 塞尔维亚 (RS)
  • 斯洛伐克 (SK)
  • 斯洛文尼亚 (SI)
  • 西班牙(ES)
  • 瑞典 (SE)
  • 瑞士 (CH)
  • 土耳其 (TR)
  • 英国 (GB)
  • 美国 (US)