Określ, jak i czy chcesz uwzględniać dane o ruchu

Wybrane przez Ciebie preferencje dotyczące ruchu równoważą dokładność szczegółów trasy z wydajnością żądań. Przesyłając żądanie, zastanów się, czy lepiej jest zwrócić jak najdokładniejsze wyniki, czy zrobić to jak najszybciej. Interfejs Routes API udostępnia opcje, które umożliwiają kontrolowanie jakości danych odpowiedzi i jej czasu oczekiwania.

Ustawianie poziomu danych o ruchu

Interfejs Routes API udostępnia funkcje RoutingPreference (REST) i RoutingPreference (gRPC), które pozwalają określić preferencje routingu przy obliczaniu tras. Preferencje te różnią się w zakresie, w jakim uwzględniają warunki na drodze przy obliczaniu trasy. Każde ustawienie routingu powoduje uzyskanie wyników różniących się w pewnym stopniu pod względem jakości trasy, szacowanego czasu dotarcia na miejsce i czasu oczekiwania na odpowiedź.

Warunki na drogach określają natężenie ruchu. Na przykład:

  • Gdy nie ma korków, warunki drogowe są uznawane za normalne, a ruch odbywa się ze stałą prędkością.
  • Przed zbliżającym się godziną szczytu zwiększa się natężenie ruchu, co powoduje spowalnianie ruchu i generowanie od lekkich do umiarkowanych warunków na drogach.
  • Gdy zderzają się korki, natężenie ruchu wstrzymuje przepływ i powoduje duże natężenie ruchu.

Brak informacji o ruchu

Gdy ustawisz preferencję routingu TRAFFIC_UNAWARE, trasy będą obliczane bez uwzględniania bieżących warunków drogowych. To ustawienie routingu zapewnia najkrótszy czas oczekiwania na odpowiedź (odpowiedzi są zwracane najszybciej).

Ustawienie domyślne to TRAFFIC_UNAWARE.

W odpowiedzi:

  • Szacowany czas dotarcia na miejsce jest podany we właściwości odpowiedzi duration.

  • Właściwości odpowiedzi duration i staticDuration zawierają tę samą wartość.

Użyj tego ustawienia routingu, jeśli chcesz, aby odpowiedzi były zwracane najszybciej, a przybliżone dane routingu są wystarczające.

Z uwzględnieniem natężenia ruchu

Gdy ustawisz preferencję routingu TRAFFIC_AWARE, trasy zostaną obliczone z uwzględnieniem bieżących warunków drogowych. Dzięki temu szczegóły trasy i trasy dokładniej odzwierciedlają rzeczywiste warunki. Ten wzrost jakości danych kosztem czasu oczekiwania na odpowiedź, dlatego stosowane są optymalizacje wydajności, aby zminimalizować te opóźnienia.

W odpowiedzi:

  • Szacowany czas dotarcia na miejsce, który uwzględnia ruch w czasie rzeczywistym, jest zawarty we właściwości odpowiedzi duration.

  • Właściwość odpowiedzi staticDuration zawiera czas podróży na trasie bez uwzględniania natężenia ruchu.

Użyj tego ustawienia routingu, jeśli chcesz uzyskać dokładniejsze dane routingu niż TRAFFIC_UNAWARE, ale nie przeszkadza Ci, że odpowiedzi są zwracane ze średnim wzrostem czasu oczekiwania.

Optymalny z uwzględnieniem ruchu

Gdy ustawisz preferencję routingu TRAFFIC_AWARE_OPTIMAL, trasy będą obliczane z uwzględnieniem bieżących warunków ruchu, ale nie zostaną zastosowane żadne optymalizacje wydajności. W tym trybie serwer przeszukuje sieć dróg w celu znalezienia optymalnej trasy.

Preferencje routingu TRAFFIC_AWARE_OPTIMAL są odpowiednikiem trybu używanego na stronie maps.google.com i w aplikacji mobilnej Mapy Google.

Gdy używasz tej opcji z macierzy tras Compute, liczba elementów w żądaniu (liczba źródeł × liczba miejsc docelowych) nie może przekraczać 100. Więcej informacji o limitach macierzy tras Compute znajdziesz w artykule o obliczaniu macierzy tras.

W odpowiedzi:

  • Szacowany czas dotarcia na miejsce, który uwzględnia ruch w czasie rzeczywistym, jest zawarty we właściwości odpowiedzi duration.

  • Właściwość odpowiedzi staticDuration zawiera czas podróży na trasie bez uwzględniania natężenia ruchu.

To ustawienie routingu zapewnia najdłuższy czas oczekiwania na odpowiedź (to znaczy, że odpowiedzi wracają z najdłuższym opóźnieniem). Używaj tego ustawienia routingu, jeśli chcesz uzyskać wyniki najwyższej jakości bez względu na czas trwania odpowiedzi.

Wpływ ustawienia godziny odjazdu

Opcjonalnie możesz użyć właściwości departureTime do ustawienia godziny wyjazdu. Jeśli nie ustawisz właściwości departureTime, domyślnie przyjęta zostanie godzina przesłania żądania.

  • W przypadku regionu TRAFFIC_UNAWARE nie można ustawić wartości departureTime, ponieważ wybór trasy i czasu trwania zależy od sieci dróg i średnich warunków na drodze w różnym czasie.

  • W przypadku usług TRAFFIC_AWARE i TRAFFIC_AWARE_OPTIMAL, które uwzględniają rzeczywiste warunki ruchu, rzeczywisty ruch staje się ważniejszy, im bliżej jest departureTime. Im dalej ustawisz godzinę odjazdu w przyszłości, tym bardziej będą uwzględniane historyczne warunki natężenia ruchu.

Przykładowe ustawienie routingu

Poniższy kod JSON pokazuje, jak ustawić preferencje routingu w treści encji wiadomości żądania.

{
  "origin":{
    "location":{
      "latLng":{
        "latitude":37.419734,
        "longitude":-122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":37.417670,
        "longitude":-122.079595
      }
    }
  },
  "travelMode":"DRIVE",
  "routingPreference":"TRAFFIC_AWARE_OPTIMAL"
}

Konfigurowanie ruchu na liniach łamanych

Interfejs Routes API umożliwia żądanie informacji o warunkach ruchu na linii łamanej wykrywającej ruch. Więcej informacji znajdziesz w artykule o żądaniu linii łamanych.