Xem tuyến đường thân thiện với môi trường

Theo mặc định, API Tuyến đường trả về tuyến mặc định, nghĩa là một tuyến đường không tính đến mức tiết kiệm nhiên liệu hoặc năng lượng. Khi bật tính năng định tuyến theo cách thân thiện với môi trường, bạn vẫn nhận được tuyến đường mặc định trong phản hồi. Ngoài ra, bạn cũng sẽ nhận được tuyến đường thân thiện với môi trường, cho biết tuyến đường tiết kiệm nhiên liệu hoặc năng lượng nhất dựa trên loại động cơ của xe.

Tuyến đường thân thiện với môi trường do API Tuyến đường trả về được tối ưu hoá để giảm mức tiêu thụ nhiên liệu trên toàn bộ tuyến đường. API này sử dụng loại động cơ xe cùng với các yếu tố khác như tình trạng giao thông theo thời gian thực và tình trạng đường sá để chọn tuyến đường thân thiện với môi trường. Tuyến đường càng tiết kiệm nhiên liệu hoặc năng lượng, thì mức sử dụng nhiên liệu/năng lượng và lượng khí thải CO2 của xe càng giảm.

Ví dụ: lợi thế tiết kiệm nhiên liệu tương đối của xe chạy bằng dầu thường là lớn nhất khi lái xe trên đường cao tốc. Xe lai và xe điện thường mang lại hiệu quả cao hơn trong môi trường lái xe trong thành phố và khi lái xe trên đồi, nơi chúng có thể sử dụng rộng rãi và hưởng lợi từ tính năng phanh tái tạo.

Bạn cũng có thể yêu cầu API trả về mức tiêu thụ nhiên liệu ước tính cho toàn bộ tuyến đường. Hãy sử dụng mức tiêu thụ nhiên liệu ước tính làm cách so sánh các tuyến đường khác nhau, chứ không phải số liệu ước tính rõ ràng về mức sử dụng nhiên liệu cho chính chiếc xe của bạn.

Cách Google Maps ước tính hiệu suất nhiên liệu

Routes API ước tính hiệu suất tiêu thụ nhiên liệu bằng cách sử dụng thông tin chi tiết từ Phòng thí nghiệm quốc gia về năng lượng tái tạo của Bộ Năng lượng Hoa Kỳ và dữ liệu của Cơ quan Môi trường Châu Âu. Cách tính này bao gồm các yếu tố ảnh hưởng đến mức sử dụng nhiên liệu và năng lượng cũng như lượng khí thải CO2, chẳng hạn như:

  • Mức tiêu thụ nhiên liệu hoặc năng lượng trung bình của các xe ở khu vực của bạn
  • Độ dốc của đồi trên tuyến đường
  • Tình hình giao thông di chuyển chậm chạp
  • Các loại đường (như đường nội đô hoặc đường cao tốc)

API Tuyến đường trả về tuyến đường tiết kiệm nhiên liệu hoặc năng lượng nhất khi có cùng thời gian đến với tuyến đường mặc định. Trong trường hợp mức tiết kiệm nhiên liệu hoặc năng lượng quá nhỏ hoặc làm tăng đáng kể thời gian lái xe, API sẽ cho thấy mức tiết kiệm nhiên liệu hoặc năng lượng tương đối giữa các tuyến đường để giúp bạn so sánh.

Đọc thêm về công nghệ định tuyến theo hướng thân thiện với môi trường (PDF).

Điều kiện tiên quyết

Cách sử dụng tính năng định tuyến theo hướng thân thiện với môi trường hoặc mức tiêu thụ nhiên liệu ước tính:

  • Bạn phải chỉ định TRAFFIC_AWARE_OPTIMAL làm lựa chọn ưu tiên định tuyến. Ở chế độ này, máy chủ sẽ tìm kiếm toàn bộ mạng lưới đường bộ để tìm tuyến đường tối ưu. Để biết thêm thông tin, hãy xem bài viết Định cấu hình chất lượng và độ trễ.

  • Bạn phải đặt travelMode thành DRIVE. Yêu cầu đối với mọi phương tiện đi lại khác sẽ trả về lỗi.

  • Bạn phải đặt vị trí cho điểm tham chiếu gốc trong một khu vực được hỗ trợ. Nếu không, API sẽ trả về lỗi.

  • Tuyến không được chứa điểm tham chiếu trung gian.

Thanh toán

Thông thường, Nền tảng Google Maps không tính phí cho việc sử dụng tính năng Bản xem trước. Tuy nhiên, vì tính năng định tuyến và ước tính mức tiêu thụ nhiên liệu thân thiện với môi trường đòi hỏi bạn phải chỉ định TRAFFIC_AWARE_OPTIMAL làm lựa chọn ưu tiên về định tuyến, nên bạn sẽ được tính phí dựa trên SKU: Tuyến đường nâng cao.

Tìm hiểu thêm về cách thanh toán cho Routes API.

Yêu cầu một tuyến đường thân thiện với môi trường

Để đưa ra yêu cầu tính toán tuyến đường thân thiện với môi trường, hãy đặt các thuộc tính sau trong yêu cầu:

  • Chỉ định emissionType cho xe bằng cách sử dụng các giá trị được xác định trong VehicleEmissionType: DIESEL, GASOLINE, ELECTRIC hoặc HYBRID. Giá trị mặc định là GASOLINE.

  • Đặt requestedReferenceRoutes thành FUEL_EFFICIENT.

  • Đặt mặt nạ trường phản hồi chỉ định trả về các thuộc tính phản hồi liên kết với một tuyến thân thiện với môi trường:

    • routes.routeLabels: Xác định mỗi tuyến là DEFAULT_ROUTE, FUEL_EFFICIENT hoặc DEFAULT_ROUTE_ALTERNATE.

    • routes.routeToken: Mã thông báo tuyến đường mà bạn có thể truyền đến SDK điều hướng để truy xuất một tuyến tuỳ chỉnh.

Ví dụ về yêu cầu thân thiện với môi trường

Đoạn mã sau đây cho thấy một yêu cầu về tuyến đường thân thiện với môi trường. Trong ví dụ này, bạn sử dụng mặt nạ trường phản hồi để trả về các thuộc tính phản hồi liên kết với một tuyến thân thiện với môi trường cùng với các thuộc tính 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'

Ví dụ về phản hồi thân thiện với môi trường

Lệnh gọi computeRoutes ở trên tạo ra một phản hồi JSON chứa 2 tuyến: tuyến mặc định và tuyến tiết kiệm nhiên liệu. Trong câu trả lời:

  • Đối với tuyến mặc định, thuộc tính mảng routeLabels chứa DEFAULT_ROUTE.

  • Đối với tuyến đường thân thiện với môi trường, thuộc tính mảng routeLabels chứa FUEL_EFFICIENT.

  • Nếu bạn đặt computeAlternativeRoutes trong yêu cầu thành true để tính toán các tuyến thay thế, thì thuộc tính mảng routeLabels sẽ chứa DEFAULT_ROUTE_ALTERNATE.

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

Do điều kiện lái xe hiện tại và các yếu tố khác, tuyến đường mặc định và tuyến đường thân thiện với môi trường có thể giống nhau. Trong trường hợp này, routeLabels chứa cả hai nhãn: DEFAULT_ROUTEFUEL_EFFICIENT:

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

Ước tính mức sử dụng nhiên liệu cho tuyến đường

Bạn có thể yêu cầu phương thức này để trả về mức sử dụng nhiên liệu ước tính cho toàn bộ tuyến đường, tính bằng microlit. Cách thêm mức sử dụng nhiên liệu ước tính cho một tuyến đường vào phản hồi:

  • Đặt trường mảng extraComputations thành FUEL_CONSUMPTION để bật tính năng tính toán mức sử dụng nhiên liệu.

  • Chỉ định emissionType cho xe bằng cách sử dụng các giá trị được xác định trong VehicleEmissionType: DIESEL, GASOLINE, ELECTRIC hoặc HYBRID. Giá trị mặc định là GASOLINE.

    Nếu emissionTypeHYBRID, API sẽ chuyển đổi mức tiêu thụ điện và nhiên liệu thành microlit nhiên liệu.

    Nếu emissionTypeELECTRIC, API sẽ chuyển đổi mức tiêu thụ điện thành microlit nhiên liệu.

  • Đặt mặt nạ trường phản hồi chỉ định trả về các thuộc tính phản hồi liên quan đến mức sử dụng nhiên liệu: routes.travelAdvisory.fuelConsumptionMicroliters.

Ví dụ sau đây yêu cầu mức sử dụng nhiên liệu ước tính trong một yêu cầu cũng bao gồm tuyến đường thân thiện với môi trường:

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'

Phản hồi này chứa mức tiêu thụ nhiên liệu ước tính cho cả tuyến đường mặc định và tuyến đường thân thiện với môi trường:

{
    "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"
            ]
        }
    ]
}

Khu vực được hỗ trợ

Nhóm Nền tảng Google Maps không ngừng nỗ lực để cải thiện mức độ phù hợp quốc tế cho các dịch vụ API của chúng tôi. Danh sách sau đây cho thấy thông tin chi tiết mới nhất về phạm vi phủ sóng, theo từng quốc gia, để định tuyến theo hướng thân thiện với môi trường:

  • Albani (AL)
  • Áo (AT)
  • Bỉ (BE)
  • Bosnia và Herzegovina (BA)
  • Bungari (BG)
  • Canada (CA)
  • Croatia (HR)
  • Síp (CY)
  • Cộng hoà Séc (CZ)
  • Đan Mạch (DK)
  • Estonia (EE)
  • Phần Lan (FI)
  • Pháp (FR)
  • Đức (DE)
  • Hy Lạp (GR)
  • Hungary (HU)
  • Iceland (IS)
  • Ireland (IE)
  • Ý (IT)
  • Tiếng Kosovo (XK)
  • Latvia (LV)
  • Liechtenstein (LI)
  • Lithuania (LT)
  • Luxembourg (LU)
  • Malta (MT)
  • Montenegro (ME)
  • Hà Lan (NL)
  • Bắc Macedonia (MK)
  • Na Uy (NO)
  • Ba Lan (PL)
  • Bồ Đào Nha (PT)
  • Romania (RO)
  • Tiếng Serbia (RS)
  • Slovakia (SK)
  • Slovenia (SI)
  • Tây Ban Nha (ES)
  • Thuỵ Điển (SE)
  • Thuỵ Sĩ (CH)
  • Thổ Nhĩ Kỳ (TR)
  • Vương Quốc Anh (GB)
  • Hoa Kỳ (US)