Wyznacz trasę przyjazną dla środowiska

Domyślnie interfejs Routes API zwraca domyślną trasę, czyli trasę bez uwzględniania paliwa i efektywności energetycznej. Gdy włączysz trasę przyjazne dla środowiska, w odpowiedzi nadal będziesz otrzymywać domyślną trasę. Dodatkowo możesz wyświetlić trasę przyjazną dla środowiska, podającą trasę z najniższym spalaniem lub energią na podstawie typu silnika.

Trasa przyjazna dla środowiska zwracana przez interfejs Routes API jest zoptymalizowana pod kątem mniejszego zużycia paliwa na całej trasie. Podczas wybierania trasy przyjaznej dla środowiska interfejs API uwzględnia typ silnika pojazdu oraz inne czynniki, takie jak informacje o natężeniu ruchu w czasie rzeczywistym i warunki na drodze. Im większa oszczędność paliwa lub energii na trasie, tym niższe zużycie paliwa lub energii i emisja CO2.

Na przykład względne zużycie paliwa w silniku Diesla jest zwykle największe podczas jazdy po autostradzie. Pojazdy hybrydowe i elektryczne z reguły lepiej działają w środowiskach miejskich, w których można jechać bez końca i kierować jazdę po górzystych terenach, gdzie można je intensywnie wykorzystywać z wykorzystaniem hamowania regeneratywnego.

Możesz też poprosić, by interfejs API zwracał szacunkowe zużycie paliwa na całej trasie. Szacowane zużycie paliwa wykorzystuj do porównywania różnych tras, a nie jako bezpośrednich szacunków zużycia paliwa dla konkretnego pojazdu.

Jak Mapy Google szacują zużycie paliwa

Interfejs Routes API szacuje efektywność paliwową na podstawie informacji pochodzących z National Renewable Energy Laboratory Departamentu Energii Stanów Zjednoczonych oraz danych Europejskiej Agencji Środowiska. W obliczeniach uwzględnia się czynniki, które mają wpływ na zużycie paliwa i energii oraz emisję CO2, takie jak:

  • średnie zużycie paliwa i energii w pojazdach w Twoim regionie,
  • nachylenie drogi na trasie,
  • wzorce natężenia ruchu,
  • rodzaje dróg (np. lokalne lub autostrady).

Interfejs Routes API zwraca trasę z najniższym spalaniem lub energią, gdy godzina przyjazdu jest mniej więcej taka sama jak trasa domyślna. Jeśli oszczędność paliwa lub energii jest zbyt mała lub powoduje znaczne wydłużenie czasu jazdy, interfejs API pokazuje względne oszczędności paliwa lub energii między trasami, aby ułatwić porównanie.

Więcej informacji o technologii wyznaczania tras przyjaznych dla środowiska (PDF)

Wymagania wstępne

Aby wyznaczać trasy przyjazne dla środowiska lub oszacować zużycie paliwa:

  • Jako preferencję routingu musisz określić TRAFFIC_AWARE_OPTIMAL. W tym trybie serwer przeprowadza bardziej szczegółowe wyszukiwanie sieci drogowej, aby znaleźć optymalną trasę. Więcej informacji znajdziesz w artykule o konfigurowaniu jakości a czas oczekiwania.

  • Musisz ustawić travelMode na DRIVE. Żądania w innych trybach podróży zwracają błąd.

  • Musisz ustawić lokalizację początkowego punktu na trasie w obsługiwanym regionie. W przeciwnym razie interfejs API zwróci błąd.

  • Trasa nie może zawierać pośrednich punktów pośrednich.

Płatności

Zwykle Google Maps Platform nie pobiera opłat za korzystanie z funkcji w wersji testowej. Wyznaczanie tras przyjaznych dla środowiska oraz szacowanie zużycia paliwa wymaga określenia TRAFFIC_AWARE_OPTIMAL jako ustawienia trasy, dlatego opłaty są naliczane na podstawie atrybutu SKU: Trasy zaawansowane.

Dowiedz się więcej o płatnościach za interfejs Routes API.

Prośba o trasę przyjazną dla środowiska

Aby wysłać żądanie wyznaczenia trasy przyjaznej dla środowiska, ustaw w żądaniu te właściwości:

  • Określ emissionType dla pojazdu za pomocą wartości zdefiniowanych w atrybucie VehicleEmissionType: DIESEL, GASOLINE, ELECTRIC lub HYBRID. Wartością domyślną jest GASOLINE.

  • Ustaw wartość requestedReferenceRoutes na FUEL_EFFICIENT.

  • Ustaw maskę pola odpowiedzi, która będzie zwracać właściwości odpowiedzi powiązane z trasą przyjazną dla środowiska:

    • routes.routeLabels: Identyfikuje każdą trasę jako DEFAULT_ROUTE, FUEL_EFFICIENT lub DEFAULT_ROUTE_ALTERNATE.

    • routes.routeToken: Token trasy, który można przekazać do pakietu SDK nawigacji, aby pobrać trasę niestandardową.

Przykład żądania reklamy przyjaznej środowisku

Poniższy kod pokazuje żądanie trasy przyjaznej dla środowiska. W tym przykładzie użyjesz maski pola odpowiedzi, aby zwrócić właściwości odpowiedzi powiązane z trasą przyjazną dla środowiska wraz z właściwościami routes.distanceMeters i routes.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'

Przykładowa odpowiedź przyjazna środowisku

Powyższe wywołanie computeRoutes generuje odpowiedź JSON zawierającą 2 trasy: trasę domyślną i trasę z najniższym spalaniem. W odpowiedzi:

  • W przypadku trasy domyślnej właściwość tablicy routeLabels zawiera DEFAULT_ROUTE.

  • W przypadku trasy przyjaznej dla środowiska właściwość tablicy routeLabels zawiera FUEL_EFFICIENT.

  • Jeśli w żądaniu ustawisz computeAlternativeRoutes jako true, aby obliczyć trasy alternatywne, właściwość tablicy routeLabels będzie zawierać DEFAULT_ROUTE_ALTERNATE.

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

Ze względu na aktualne warunki na drodze i inne czynniki trasa domyślna i trasa przyjazna środowisku mogą być takie same. W tym przypadku routeLabels zawiera obie etykiety: DEFAULT_ROUTE i FUEL_EFFICIENT:

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

Oszacuj zużycie paliwa na trasie.

Możesz poprosić o wskazanie w mikrolitach szacowanego zużycia paliwa na całej trasie. Aby dodać do odpowiedzi szacowane zużycie paliwa na danej trasie:

  • W polu tablicy extraComputations ustaw wartość FUEL_CONSUMPTION, aby włączyć obliczanie zużycia paliwa.

  • Określ emissionType dla pojazdu za pomocą wartości zdefiniowanych w atrybucie VehicleEmissionType: DIESEL, GASOLINE, ELECTRIC lub HYBRID. Wartością domyślną jest GASOLINE.

    Jeśli emissionType to HYBRID, interfejs API przelicza energię elektryczną i zużycie paliwa na mikrolitry paliwa.

    Jeśli emissionType to ELECTRIC, interfejs API przelicza zużycie energii elektrycznej na mikrolitry paliwa.

  • Ustaw maskę pola odpowiedzi, która będzie zwracać właściwości odpowiedzi powiązane ze zużyciem paliwa: routes.travelAdvisory.fuelConsumptionMicroliters.

Poniżej znajduje się przykład prośby o szacowanie zużycia paliwa w ramach żądania zawierającego również trasę przyjazną dla środowiska:

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'

Odpowiedź zawiera szacowane zużycie paliwa zarówno dla trasy domyślnej, jak i dla trasy przyjaznej dla środowiska:

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

Obsługiwane regiony

Zespół Google Maps Platform stale pracuje nad zwiększeniem zasięgu naszych usług interfejsów API na całym świecie. Oto lista najnowszych informacji na temat wyznaczania tras przyjaznych dla środowiska w poszczególnych krajach:

  • Albania (AL)
  • Austria (AT)
  • Belgia (BE)
  • Bośnia i Hercegowina (BA)
  • Bułgaria (BG)
  • Kanada (CA)
  • Chorwacja (HR)
  • Cypr (CY)
  • Czechy (CZ)
  • Dania (DK)
  • Estonia (EE)
  • Finlandia (FI)
  • Francja (FR)
  • Niemcy (DE)
  • Grecja (GR)
  • Węgry (HU)
  • Islandia (IS)
  • Irlandia (IE)
  • Włochy (IT)
  • Kosowo (XK)
  • Łotwa (LV)
  • Liechtenstein (LI)
  • Litwa (LT)
  • Luksemburg (LU)
  • Malta (MT)
  • Czarnogóra (ME)
  • Holandia (NL)
  • Macedonia Północna (MK)
  • Norwegia (NO)
  • Polska (PL)
  • Portugalia (PT)
  • Rumunia (RO)
  • Serbia
  • Słowacja (SK)
  • Słowenia (SI)
  • Hiszpania (ES)
  • Szwecja (SE)
  • Szwajcaria (CH)
  • Turcja (TR)
  • Wielka Brytania (GB)
  • Stany Zjednoczone