規劃環保路線

根據預設,Routes API 會傳回預設路線,也就是不將燃油或能源效率納入考量的路徑。當您啟用環保轉送時,仍會在回應中取得預設路徑。此外,我們也會根據車輛的引擎類型,傳回環保路徑,顯示最省油或最節能的路線。

Routes API 傳回的環保路徑經過最佳化,以降低整條路線的燃料消耗量。API 會使用車輛的引擎類型,以及即時車流量和路況等其他因素,選擇環保路徑。路線的燃油或能源效率越高,車輛的燃油/能源消耗和二氧化碳排放量就越低。

舉例來說,柴油車輛的相對燃油經濟優勢通常最在高速公路行駛中。油電混合車及電動車在走走停停的城市和山坡行駛時,可大量運用再生煞車功能,可大幅提高效率。

您也可以要求 API 傳回整條路線的預估燃料耗量。參考燃料耗量資訊來評估不同路線,而不是以確切的車輛估算燃料用量。

Google 地圖如何估算燃油效率

Routes API 會根據美國能源部國家可再生能源實驗室的深入分析,以及歐洲環境署提供的資料估算燃油效率。計算時會納入影響燃油和能源消耗以及二氧化碳排放量的因素,例如:

  • 你所在區域的車輛平均燃油或能源消耗量
  • 路線沿途的山坡陡峭程度
  • 走走停停的車流量模式
  • 道路類型 (例如地區道路或高速公路)

如果 Routes API 傳回最省油或最節能的路線,且與預設路線的抵達時間相近,如果省油量或能源節省量過小,或是行車時間大幅增加,API 會顯示不同路線之間相對的省油量或節能量,方便你進行比較。

進一步瞭解環保路徑技術 (PDF)

先備知識

如要使用環保路線或預估燃油耗量,請按照下列步驟操作:

  • 您必須指定 TRAFFIC_AWARE_OPTIMAL 做為轉送偏好設定。在這個模式下,伺服器會對路網進行更全面的搜尋,以找出最佳路徑。詳情請參閱「設定品質與延遲時間」。

  • 您必須將 travelMode 設為 DRIVE。針對任何其他交通方式的要求,系統會傳回錯誤。

  • 您必須在支援的區域中設定起點路線控點的位置。否則,API 會傳回錯誤。

  • 路線不得包含中間路點。

帳單

一般而言,Google 地圖平台不會收取預先發布版功能的使用費。不過,由於環保路徑及預估燃料耗量需要您為路線偏好設定指定 TRAFFIC_AWARE_OPTIMAL,因此系統會根據 SKU:Routes Advanced 向您收費。

進一步瞭解 Routes API 的計費方式

預約環保路線

如要要求計算環保路徑,請在要求中設定下列屬性:

  • 請使用 VehicleEmissionTypeDIESELGASOLINEELECTRICHYBRID 中定義的值,為車輛指定 emissionType。預設值為 GASOLINE

  • requestedReferenceRoutes 設為 FUEL_EFFICIENT

  • 設定回應欄位遮罩,指定要傳回與環保路徑相關聯的回應屬性:

    • routes.routeLabels: 會將每條路徑識別為 DEFAULT_ROUTEFUEL_EFFICIENTDEFAULT_ROUTE_ALTERNATE

    • 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: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,routes.routeLabels,routes.routeToken' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

環保回覆範例

上述的 computeRoutes 呼叫會產生 JSON 回應,其中包含兩個路線:預設路線和省油路線。在回覆中:

  • 針對預設路線,routeLabels 陣列屬性包含 DEFAULT_ROUTE

  • 針對環保路徑,routeLabels 陣列屬性包含 FUEL_EFFICIENT

  • 如果您在要求中將 computeAlternativeRoutes 設定為 true 來計算替代路徑,則 routeLabels 陣列屬性會包含 DEFAULT_ROUTE_ALTERNATE

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

受目前的行車條件和其他因素影響,預設路線和環保路徑可以相同。在此情況下,routeLabels 包含 DEFAULT_ROUTEFUEL_EFFICIENT 這兩個標籤:

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

估算路線的燃油用量

您可以要求這個方法,傳回整個路線的預估燃油用量 (以微光為單位)。如何在回應中加入路線的預估燃油用量:

  • extraComputations 陣列欄位設為 FUEL_CONSUMPTION,即可啟用燃料用量計算功能。

  • 請使用 VehicleEmissionTypeDIESELGASOLINEELECTRICHYBRID 中定義的值,為車輛指定 emissionType。預設值為 GASOLINE

    如果 emissionTypeHYBRID,API 會將電力和燃料消耗轉換成微光的燃料。

    如果 emissionTypeELECTRIC,API 會將電力消耗轉換為微公升的燃料。

  • 設定回應欄位遮罩,用來指定傳回與燃料用量相關聯的回應屬性:routes.travelAdvisory.fuelConsumptionMicroliters

以下範例會要求在要求中,同時包含環保路徑的預估燃料用量:

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",
  "extraComputations": ["FUEL_CONSUMPTION"],
  "requestedReferenceRoutes": ["FUEL_EFFICIENT"]
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,routes.routeLabels,routes.routeToken,routes.travelAdvisory.fuelConsumptionMicroliters' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

回應包含預設路線和環保路徑的預估燃料耗量:

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

支援的地區

Google 地圖平台團隊持續致力於提升 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)