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

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.

Nieznany 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 durationstaticDuration 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 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 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 najdłuższy czas oczekiwania na odpowiedź). 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_AWARETRAFFIC_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 daty departureTime. 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.