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

Theo mặc định, API Tuyến đường sẽ trả về tuyến mặc định, nghĩa là một tuyến đường không tính đến hiệu suất tiêu thụ nhiên liệu hoặc năng lượng. Khi bật tính năng định tuyến theo hướng thân thiện với môi trường, bạn vẫn nhận được tuyến mặc định trong phản hồi. Ngoài ra, bạn cũng nhận lại được một tuyến đường thân thiện với môi trường, trong đó hiển thị 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ủa bạn 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ụ: ưu điểm tiết kiệm nhiên liệu tương đối của xe chạy dầu nhìn chung là lớn nhất khi lái xe trên đường cao tốc. Xe lai điện và xe điện có xu hướng mang lại hiệu quả ngày càng cao hơn trong môi trường lái xe trong thành phố và lái xe trên đồi núi. Tại đây, xe có thể sử dụng rộng rãi và hưởng lợi từ hệ thố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. Sử dụng thông tin ước tính về mức tiêu thụ nhiên liệu để so sánh các tuyến đường khác nhau, chứ không phải là thông tin ước tính rõ ràng về mức sử dụng nhiên liệu của chiếc xe chính xác của bạn.

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

API Tuyến đường ước tính hiệu suất tiêu thụ nhiên liệu dựa trên 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 sẽ trả về tuyến đường tiết kiệm nhiên liệu hoặc năng lượng nhất khi có thời gian đến gần bằng 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á ít hoặc 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 ước tính mức tiêu thụ nhiên liệu:

  • Bạn phải chỉ định TRAFFIC_AWARE_OPTIMAL làm tuỳ chọn định tuyến. Ở chế độ này, máy chủ sẽ thực hiện việc tìm kiếm toàn diện hơn trên mạng đườ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 cho bất kỳ chế độ đi lại nào khác sẽ trả về lỗi.

  • Bạn phải thiết lập 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í sử dụng tính năng Xem trước. Tuy nhiên, vì việc định tuyến theo hướng thân thiện với môi trường và ước tính mức tiêu thụ nhiên liệu đòi hỏi bạn phải chỉ định TRAFFIC_AWARE_OPTIMAL làm lựa chọn ưu tiên định tuyến, nên bạn sẽ phải trả phí dựa trên SKU: Tuyến đường nâng cao.

Tìm hiểu thêm về việc thanh toán cho tuyến đường 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 một 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:

  • Hãy 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ạ cho trường (field mask) để 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 từng tuyến là DEFAULT_ROUTE, FUEL_EFFICIENT hoặc DEFAULT_ROUTE_ALTERNATE.

    • routes.routeToken: Mã thông báo tuyến 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

Mã sau đây cho thấy một yêu cầu về một 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ề câu trả lời thân thiện với môi trường

Lệnh gọi computeRoutes ở trên tạo ra phản hồi JSON chứa 2 tuyến: tuyến mặc định và tuyến đường 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 tình trạng 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.

  • Hãy 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 micrô lít nhiên liệu.

  • Đặt mặt nạ cho trường (field mask) của 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 cả 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 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 đang liên tục làm việc để cải thiện phạm vi phủ sóng 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 áp dụ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)
  • Bulgaria (BG)
  • Canada (CA)
  • Croatia (HR)
  • Síp (CY)
  • 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)
  • Ý (Ý)
  • 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)
  • Serbia (RS)
  • Slovakia (SK)
  • Slovenia (SI)
  • Tây Ban Nha (ES)
  • Thuỵ Điển (SE)
  • Thụy Sĩ (CH)
  • Thổ Nhĩ Kỳ (TR)
  • Vương Quốc Anh (GB)
  • Hoa Kỳ (US)