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

Wybrane preferencje dotyczące ruchu odzwierciedlają równowagę między dokładnością szczegółów trasy a skutecznością żądań. Zastanów się, czy lepiej, czy lepiej jak najszybciej zwrócić wyniki czy podać jak najdokładniejsze wyniki. Interfejs Routes API udostępnia opcje, które pozwalają kontrolować jakość danych o odpowiedzi i czas oczekiwania na odpowiedź.

Ustawianie poziomu ruchu

Interfejs Routes API udostępnia funkcje RoutingPreference (REST) i RoutingPreference (gRPC), które umożliwiają określanie ustawień routingu przy obliczaniu tras. Różnią się tym zakresem, w jakim uwzględniają warunki na drodze do obliczania trasy. Każde ustawienie routingu generuje wyniki różniące się w zależności od jakości trasy, szacowanego czasu dotarcia na miejsce i czasu oczekiwania na odpowiedź.

Prędkość ruchu charakteryzuje się natężeniem ruchu. Na przykład:

  • Gdy nie ma korków, warunki na drodze są uważane za normalne, a ruch odbywa się z normalną, niezakłóconą prędkością.
  • Gdy zbliża się porę największego zużycia, natężenie ruchu wzrasta, co powoduje jego zmniejszanie się i zmniejszanie natężenia ruchu w warunkach o średnim natężeniu ruchu.
  • W przypadku zderzenia z bumperem prędkość przepływu ściga się do zatrzymania, co powoduje duże natężenie ruchu.

Nierozpoznany ruch

Gdy ustawisz ustawienie routingu TRAFFIC_UNAWARE, trasy będą obliczane bez uwzględniania bieżących warunków drogowych. To ustawienie routingu zapewnia najkrótszy czas oczekiwania na odpowiedź (odpowiedzi są zwracane najszybciej).

Ustawienie domyślne to TRAFFIC_UNAWARE.

W odpowiedzi:

  • Szacowany czas dotarcia jest zawarty we właściwości odpowiedzi duration.

  • Właściwości odpowiedzi duration i staticDuration zawierają tę samą wartość.

Użyj tego ustawienia routingu, jeśli chcesz, aby odpowiedzi były zwracane najszybciej, a przybliżone szczegóły routingu są wystarczające.

Informacja o natężeniu ruchu

Gdy ustawisz ustawienie routingu TRAFFIC_AWARE, trasy będą obliczane z uwzględnieniem bieżących warunków drogowych. Dzięki temu trasa i szczegóły trasy dokładniej odzwierciedlają rzeczywiste warunki. Ten wzrost jakości danych wiąże się z opóźnieniem reakcji, dlatego stosuje się optymalizacje wydajności w celu zmniejszenia opóźnienia.

W odpowiedzi:

  • Szacowany czas dotarcia na miejsce, który uwzględnia ruch w czasie rzeczywistym, znajduje się we właściwości odpowiedzi duration.

  • Właściwość odpowiedzi staticDuration podaje czas podróży po trasie bez uwzględniania warunków drogowych.

Użyj tego ustawienia routingu, jeśli potrzebujesz dokładniejszych szczegółów routingu niż TRAFFIC_UNAWARE, ale Ci nie przeszkadza, jeśli odpowiedzi są zwracane ze umiarkowanym wzrostem opóźnienia.

Optymalna z uwzględnieniem ruchu

Gdy ustawisz ustawienie routingu TRAFFIC_AWARE_OPTIMAL, trasy będą obliczane z uwzględnieniem bieżących warunków natężenia ruchu, ale nie będzie stosowana żadna optymalizacja skuteczności. W tym trybie serwer bardziej szczegółowo przeszukuje sieć dróg, aby znaleźć optymalną trasę.

Preferencje routingu TRAFFIC_AWARE_OPTIMAL odpowiadają trybowi używanemu na stronie maps.google.com i w aplikacji mobilnej Mapy Google.

Gdy używasz tej opcji z macierzy tras Compute, liczba elementów w żądaniu (liczba źródeł × liczba miejsc docelowych) nie może przekraczać 100. Więcej informacji o limitach macierzy tras Compute znajdziesz w sekcji Obliczanie macierzy tras.

W odpowiedzi:

  • Szacowany czas dotarcia na miejsce, który uwzględnia ruch w czasie rzeczywistym, znajduje się we właściwości odpowiedzi duration.

  • Właściwość odpowiedzi staticDuration podaje czas podróży po trasie bez uwzględniania warunków drogowych.

To ustawienie routingu zapewnia najwyższy czas oczekiwania na odpowiedź (czyli odpowiedzi zwracane z najdłuższym opóźnieniem). Użyj tego ustawienia routingu, jeśli chcesz uzyskać wyniki o najwyższej jakości bez względu na czas trwania odpowiedzi.

Wpływ ustawienia godziny wyjazdu

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 zostanie użyta godzina przesłania żądania.

  • W przypadku regionu TRAFFIC_UNAWARE nie można ustawić wartości departureTime, ponieważ wybór trasy i czasu podróży zależy od sieci drogowej i warunków natężenia ruchu w zależności od średniego czasu.

  • W przypadku TRAFFIC_AWARE i TRAFFIC_AWARE_OPTIMAL, które uwzględniają rzeczywiste warunki na drodze, rzeczywisty ruch staje się ważniejszy, im bardziej zbliżona jest wartość departureTime. Im dalej ustawisz godzinę odjazdu w przyszłości, tym więcej weźmiemy pod uwagę historyczne warunki natężenia ruchu.

Przykładowe ustawienie routingu

Poniższy kod JSON pokazuje, jak ustawić preferencje routingu w treści encji żą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 żądań informacji o warunkach na drodze do linii łamanej uwzględniającej ruch. Więcej informacji znajdziesz w artykule Wiersze łamane żądania.