Wybrane przez Ciebie preferencje dotyczące ruchu zapewniają równowagę między dokładnością szczegółów trasy a wydajnością żądań. Gdy wysyłasz żądanie, musisz zdecydować, czy lepiej jest zwrócić jak najdokładniejsze wyniki, czy 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 preferencje routingu RoutingPreference (REST) i RoutingPreference (gRPC), które umożliwiają określenie preferencji routingu na potrzeby obliczania tras. Preferencje te różnią się w zakresie, w jakim uwzględniają warunki na drodze przy obliczaniu trasy. Każde ustawienie trasy daje wyniki, które różnią się pod względem jakości trasy, przewidywanego czasu dojazdu i czasu oczekiwania na odpowiedź.
Warunki na drodze charakteryzują tempo przepływu ruchu. Na przykład:
- Gdy nie ma korków, warunki na drodze są uznawane za normalne, a ruch odbywa się z normalną prędkością.
- Przed godziną szczytu zwiększa się natężenie ruchu, co powoduje spowalnianie ruchu i generowanie od lekkich do umiarkowanych warunków na drogach.
- W przypadku korków natężenie ruchu spada do zera, co powoduje duże natężenie ruchu.
Nieświadomy ruch
Gdy ustawisz preferencję wyznaczania trasy TRAFFIC_UNAWARE
, trasy są obliczane bez uwzględniania bieżących warunków na drodze. Ta preferencja routingu zapewnia najkrótszy czas odpowiedzi (odpowiedzi są zwracane najszybciej).
TRAFFIC_UNAWARE
to ustawienie domyślne.
W odpowiedzi:
Przewidywany czas przybycia znajduje się w właściwości odpowiedzi
duration
.Właściwości odpowiedzi
duration
istaticDuration
zawierają tę samą wartość.
Użyj tej opcji, gdy chcesz, aby odpowiedzi były zwracane najszybciej, a przybliżone informacje o trasie są wystarczające.
Z uwzględnieniem natężenia ruchu
Gdy ustawisz preferencję wyznaczania trasy TRAFFIC_AWARE
, trasy będą obliczane z uwzględnieniem aktualnych warunków drogowych. W rezultacie trasa i szczegóły trasy lepiej odzwierciedlają rzeczywiste warunki. Zwiększenie jakości danych odbywa się kosztem opóźnienia odpowiedzi, dlatego stosujemy optymalizacje wydajności, aby znacznie zmniejszyć opóźnienie.
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 tej opcji, jeśli chcesz uzyskać dokładniejsze informacje o kierowaniu niż w przypadku TRAFFIC_UNAWARE
, ale nie przeszkadza Ci, że odpowiedzi będą opóźnione.
Optymalny z uwzględnieniem ruchu
Gdy ustawisz preferencję wyznaczania trasy TRAFFIC_AWARE_OPTIMAL
, trasy będą obliczane z uwzględnieniem aktualnych warunków drogowych, ale nie zostaną zastosowane żadne optymalizacje skuteczności. W tym trybie serwer wykonuje bardziej wyczerpujące wyszukiwanie sieci drogowej, aby znaleźć optymalną trasę.
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 opcją Obliczanie macierzy tras, liczba elementów w żądaniu (liczba miejsc pochodzenia × liczba miejsc docelowych) nie może przekraczać 100. Więcej informacji o limitach obliczeń macierzy tras znajdziesz w artykule Obliczanie 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 wylotu
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
TRAFFIC_UNAWARE
nie można ustawićdepartureTime
, ponieważ wybór trasy i czasu trwania zależy od sieci drogowej i średnich warunków ruchu niezależnych od czasu.W przypadku
TRAFFIC_AWARE
iTRAFFIC_AWARE_OPTIMAL
, które uwzględniają warunki natężenia ruchu na żywo, natężenie ruchu na żywo staje się ważniejsze, im bliżej do datydepartureTime
. Im dalej w przód ustawisz czas wyjazdu, tym większą wagę będzie przywiązywać do historycznych warunków ruchu.
Przykład ustawienia preferencji 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 wysyłanie zapytań o warunki natężenia ruchu na odcinku drogi z uwzględnieniem natężenia ruchu. Więcej informacji znajdziesz w artykule Wysyłanie żądań dotyczących ścieżek wielokątów.