Wybrane przez Ciebie ustawienia ruchu równoważą dokładność szczegółów trasy z wydajnością żądania na 2 sposoby:
Uwzględnianie natężenia ruchu – zwracanie jak najdokładniejszych wyników (większe opóźnienie).
Traffic unaware (Nie uwzględnia natężenia ruchu) – zwraca wyniki tak szybko, jak to możliwe (najmniejsze opóźnienie).
Gdy wysyłasz żądanie, zastanów się, czy ważniejsze jest uzyskanie jak najdokładniejszych wyników, czy jak najszybsze ich otrzymanie. Interfejs Routes API udostępnia opcje, które pozwalają kontrolować jakość danych odpowiedzi w porównaniu z czasem oczekiwania na odpowiedź.
Jak ustawić poziom ruchu
Interfejs Routes API udostępnia parametry RoutingPreference (REST) i RoutingPreference (gRPC), które umożliwiają określanie preferencji dotyczących wyznaczania tras.
Domyślnie wyświetlane są wyniki bez uwzględniania ruchu. Opcje ruchu wybierasz za pomocą ustawień routingu TRAFFIC_UNAWARE
, TRAFFIC_AWARE
i TRAFFIC_AWARE_OPTIMAL
. Każda preferencja routingu daje wyniki, które różnią się jakością trasy, szacowanym czasem dotarcia i opóźnieniem odpowiedzi.
warunkach na drogach,
Warunki na drodze określają natężenie ruchu:
Normalny ruch: brak zatorów, ruch odbywa się z normalną prędkością.
Mały lub średni ruch: rosnące natężenie ruchu, który płynie ze zmniejszoną prędkością.
Duży ruch: duże natężenie ruchu, znacznie zmniejszona prędkość.
Bez informacji o ruchu
TRAFFIC_UNAWARE
to ustawienie domyślne. Użyj tego ustawienia routingu, gdy chcesz jak najszybciej otrzymywać odpowiedzi, a przybliżone szczegóły routingu są wystarczające.
TRAFFIC_UNAWARE
trasy są obliczane bez uwzględniania bieżących warunków drogowych. Ten rodzaj routingu zapewnia najszybszą odpowiedź na żądanie (najmniejsze opóźnienie).
Jeśli wybierzesz TRAFFIC_UNAWARE
, trasa i czas podróży będą oparte na sieci dróg i średnich warunkach ruchu niezależnych od czasu, a nie na bieżących warunkach na drodze. W związku z tym trasy mogą obejmować drogi, które są tymczasowo zamknięte. Wyniki dla danego żądania mogą się zmieniać z czasem z powodu zmian w sieci dróg, aktualizacji średnich warunków ruchu i rozproszonego charakteru usługi. Wyniki mogą się też różnić w przypadku niemal identycznych tras w dowolnym momencie lub z dowolną częstotliwością.
Oto odpowiedzi, które zobaczysz:
duration
– zawiera szacowany czas dotarcia na trasie.staticDuration
: szacowany czas dotarcia na trasie z uwzględnieniem tylko historycznych informacji o ruchu. W przypadku parametruTRAFFIC_UNAWARE
zawiera on tę samą wartość co parametrduration
.
Uwzględnianie natężenia ruchu
Użyj tego ustawienia routingu, jeśli chcesz uzyskać dokładniejsze szczegóły routingu niż w przypadku ustawienia TRAFFIC_UNAWARE
, ale nie przeszkadza Ci umiarkowany wzrost opóźnienia w odpowiedziach.
Gdy ustawisz TRAFFIC_AWARE
preferencje dotyczące routingu, usługa obliczy trasę z uwzględnieniem aktualnych warunków drogowych. Dzięki temu trasa i jej szczegóły będą dokładniej odzwierciedlać rzeczywiste warunki. Ponieważ wzrost jakości danych odbywa się kosztem czasu oczekiwania na odpowiedź, stosujemy optymalizacje wydajności, aby znacznie skrócić czas oczekiwania.
Oto odpowiedzi, które zobaczysz:
duration
: szacowany czas dotarcia z uwzględnieniem informacji o natężeniu ruchu w czasie rzeczywistym.staticDuration
Szacowany czas dotarcia na miejsce na podstawie tylko historycznych informacji o ruchu drogowym.
Optymalizacja z uwzględnieniem natężenia ruchu
Użyj tego ustawienia routingu, jeśli chcesz uzyskać wyniki najwyższej jakości bez względu na czas odpowiedzi. Ten rodzaj routingu ma najdłuższe opóźnienie w odpowiedziach (największe opóźnienie).
Gdy ustawisz preferencje dotyczące TRAFFIC_AWARE_OPTIMAL
wyznaczania trasy, usługa obliczy trasę z uwzględnieniem aktualnych warunków na drodze, ale nie zastosuje optymalizacji wydajności. W tym trybie serwer przeprowadza bardziej wyczerpujące wyszukiwanie w sieci dróg, aby znaleźć optymalną trasę.
TRAFFIC_AWARE_OPTIMAL
Preferencje dotyczące wyznaczania trasy są równoważne trybowi używanemu przez maps.google.com i aplikację mobilną Mapy Google.
Jeśli używasz tej opcji z usługą Compute Route Matrix, liczba elementów w żądaniu (liczba punktów początkowych × liczba punktów docelowych) nie może przekraczać
- Więcej informacji o limitach macierzy wyznaczania tras znajdziesz w artykule Obliczanie macierzy tras.
Oto odpowiedzi, które zobaczysz:
duration
: szacowany czas dotarcia na miejsce na podstawie informacji o ruchu w czasie rzeczywistym.staticDuration
: szacowany czas dotarcia na trasie z uwzględnieniem tylko historycznych informacji o ruchu.
Ustaw godzinę wylotu (opcjonalnie)
Używaj tej właściwości tylko w przypadku żądań uwzględniających ruch, w których czas odjazdu musi być w przyszłości. Jeśli nie ustawisz właściwości departureTime
, domyślnie zostanie użyty czas wysłania żądania.
Użyj właściwości departureTime
wraz z opcjami TRAFFIC_AWARE
i TRAFFIC_AWARE_OPTIMAL
, gdy chcesz dostosować sposób, w jaki usługa przewiduje ruch podczas wyboru trasy.
TRAFFIC_UNAWARE
: Nie zalecamy, ponieważ wybór trasy i czas trwania podróży zależą od sieci dróg i średnich warunków ruchu niezależnych od czasu.TRAFFIC_AWARE
iTRAFFIC_AWARE_OPTIMAL
:zalecane w przypadku wyjazdów w najbliższej przyszłości, ponieważ te ustawienia uwzględniają aktualne warunki drogowe. Ruch na żywo staje się ważniejszy i bardziej istotny, im bliżejdepartureTime
jest do teraźniejszości. Im bardziej odległy w przyszłości jest czas odjazdu, tym większe znaczenie mają historyczne warunki drogowe przy wyborze tras.
Przykład: wybieranie routingu uwzględniającego ruch
Poniższy kod JSON pokazuje, jak ustawić preferencje routingu TRAFFIC_AWARE_OPTIMAL
w treści 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 poliliniach
Interfejs Routes API umożliwia wysyłanie zapytań o informacje o natężeniu ruchu wzdłuż linii łamanej uwzględniającej ruch. Więcej informacji znajdziesz w sekcji Wysyłanie żądań dotyczących linii łamanych.