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 w porównaniu z czasem oczekiwania na odpowiedź.
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. Te preferencje różnią się między sobą pod względem uwzględniania warunków na drodze w obliczeniach 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ą.
- W okresie zbliżającego się szczytu natężenie ruchu wzrasta, co powoduje jego spowolnienie i powoduje umiarkowany ruch.
- 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 na drodze. 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:
Wartość ETA uwzględniająca natężenie ruchu w czasie rzeczywistym znajduje się w komponencie odpowiedzi
duration
.Właściwość odpowiedzi
staticDuration
zawiera czas przejazdu po trasie bez uwzględniania warunków na drodze.
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.
Traffic aware optimal
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 w sieci drogowej, aby znaleźć optymalną trasę.
Ustawienie trasy TRAFFIC_AWARE_OPTIMAL
jest równoważne trybowi używanemu przez maps.google.com i aplikację mobilną Mapy Google.
Gdy używasz tej opcji z opcją Obliczanie macierzy tras, liczba elementów w żądaniu (liczba punktów początkowych × liczba punktów docelowych) nie może przekroczyć 100. Więcej informacji o limitach obliczeń macierzy tras znajdziesz w artykule Obliczanie macierzy tras.
W odpowiedzi:
Wartość ETA uwzględniająca natężenie ruchu w czasie rzeczywistym znajduje się w komponencie odpowiedzi
duration
.Właściwość odpowiedzi
staticDuration
zawiera czas przejazdu po trasie bez uwzględniania warunków na drodze.
Ta preferencja routingu zapewnia najdłuższy czas oczekiwania na odpowiedź (czyli odpowiedź z najdłuższym opóźnieniem). Użyj tej opcji, jeśli chcesz uzyskać wyniki o najwyższej jakości, niezależnie od czasu oczekiwania na odpowiedzi.
Wpływ ustawienia godziny wylotu
Opcjonalnie możesz użyć właściwości departureTime
, aby ustawić czas wyjazdu. Jeśli nie ustawisz właściwości departureTime
, domyślnie zostanie użyta godzina wysł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, gdydepartureTime
zbliża się do bieżącej daty. 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ć preferencję kierowania w treści elementu zapytania.
{ "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 poliliniach
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 poliliniowych.