Wybrane przez Ciebie ustawienia ruchu równoważą dokładność szczegółów trasy z wydajnością żądania na 2 sposoby:
- Uwzględnia ruch: zwraca najdokładniejsze możliwe wyniki (większe opóźnienie).
- Bez informacji o ruchu: zwracaj wyniki tak szybko, jak to możliwe (najmniejsze opóźnienie).
Gdy wysyłasz prośbę, zastanów się, czy lepiej jest zwrócić jak najdokładniejsze wyniki, czy jak najszybciej. Biblioteka Routes udostępnia opcje, które pozwalają kontrolować jakość danych odpowiedzi w porównaniu z opóźnieniem odpowiedzi.
Ustawianie poziomu ruchu i modelu ruchu
Aby określić poziom ruchu, ustaw routingPreference na ComputeRoutesRequest. Poniżej znajdziesz listę dostępnych opcji:routingPreference
TRAFFIC_UNAWARE(domyślne): zwraca wyniki najszybciej, z przybliżonymi szczegółami routingu.TRAFFIC_AWARE: zwraca dokładniejsze wyniki na podstawie danych o natężeniu ruchu w czasie rzeczywistym, ale z większym opóźnieniem.TRAFFIC_AWARE_OPTIMAL: zwraca najdokładniejsze wyniki, korzystając z danych o ruchu w czasie rzeczywistym, ale z największym opóźnieniem.
Właściwość TRAFFIC_MODEL
reprezentuje założenia, które należy uwzględnić podczas prognozowania czasu trwania przejazdu z uwzględnieniem natężenia ruchu (
TrafficModel.BEST_GUESS (domyślne),
TrafficModel.OPTIMISTIC,
TrafficModel.PESSIMISTIC).
Jak wybrać kierowanie z uwzględnieniem ruchu
Aby utworzyć żądanie trasy uwzględniające ruch, wykonaj te czynności:
-
Ustaw właściwość
travelModenaDRIVING. -
Ustaw właściwość
routingPreferencena jedną z tych wartości:TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
UWAGA: domyślne ustawienie to
TRAFFIC_UNAWARE. -
Ustaw właściwość
trafficModelna jedną z tych wartości: -
Ustaw właściwość
extraComputationsnaTRAFFIC_ON_POLYLINE. -
Poproś o pola
path,speedPathsirouteLabels.
Poniższy przykład żądania pokazuje, jak poprosić o trasę uwzględniającą ruch, która wyświetla dane o ruchu na polilinii:
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
warunkach na drogach,
Warunki na drogach 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 porusza się z mniejszą 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 na drodze. Ten rodzaj routingu zapewnia najszybszą odpowiedź na żądanie (najmniejsze opóźnienie).
Jeśli wybierzesz TRAFFIC_UNAWARE, wybrana 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 danego żądania mogą się zmieniać z czasem ze względu na zmiany w sieci dróg, zaktualizowane średnie warunki ruchu i rozproszony charakter 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_UNAWAREzawiera on tę samą wartość co parametrduration.
Uwzględnianie natężenia ruchu
Użyj tego ustawienia routingu, jeśli chcesz uzyskać dokładniejsze informacje o trasie niż w przypadku ustawienia TRAFFIC_UNAWARE, ale nie przeszkadza Ci umiarkowane zwiększenie opóźnienia w odpowiedziach.
Gdy ustawisz preferencje routingu TRAFFIC_AWARE, usługa obliczy trasę z uwzględnieniem aktualnych warunków ruchu. Dzięki temu trasa i jej szczegóły dokładniej odzwierciedlają 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 uwzględniający informacje o natężeniu ruchu w czasie rzeczywistym.staticDuration: szacowany czas dotarcia na trasie z uwzględnieniem tylko historycznych informacji o ruchu.
Optymalne 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 preferencję routingu TRAFFIC_AWARE_OPTIMAL, usługa obliczy trasę z uwzględnieniem aktualnych warunków na drodze, ale nie zastosuje optymalizacji wydajności. W tym trybie serwer przeprowadza dokładniejsze wyszukiwanie w sieci dróg, aby znaleźć optymalną trasę.
TRAFFIC_AWARE_OPTIMAL Preferencja dotycząca wyznaczania trasy jest równoważna trybowi używanemu przez maps.google.com i aplikację mobilną Mapy Google.
Jeśli używasz tej opcji z computeRouteMatrix, liczba elementów w żądaniu (liczba punktów początkowych × liczba miejsc docelowych) nie może przekraczać 25.
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 natężenie ruchu, 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żywaj 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 zalecane, ponieważ wybór trasy i czas trwania podróży zależą od sieci dróg i średnich warunków ruchu niezależnych od czasu.TRAFFIC_AWAREiTRAFFIC_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ę tym ważniejszy i bardziej istotny, im bliżejdepartureTimejest do teraz. Im bardziej odległy w przyszłości jest czas odjazdu, tym większe znaczenie mają historyczne warunki drogowe przy wyborze tras.
Pobieranie tokena trasy
Tokeny trasy to bezpieczna dla sieci reprezentacja trasy zakodowana w formacie base64. Użyj tokena trasy, aby udostępnić trasę za pomocą pakietu Navigation SDK. Pakiet SDK używa tego tokena do odtworzenia trasy i zachowania pierwotnego zamiaru nawigacji, nawet podczas zmiany trasy.
Aby uzyskać token trasy:
- Ustaw wartość travelMode na
DRIVING. - Ustaw wartość
routingPreferencenaTRAFFIC_AWARElubTRAFFIC_AWARE_OPTIMAL. - Poproś o pole
routeToken.
Ten przykładowy kod pokazuje, jak wysłać żądanie tokena trasy:
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };