Method: computeRouteMatrix

Pobiera listę źródeł i miejsc docelowych, a następnie zwraca strumień zawierający informacje o trasie dla każdej kombinacji źródła i miejsca docelowego.

UWAGA: ta metoda wymaga określenia maski pola odpowiedzi w danych wejściowych. Maskę pola odpowiedzi możesz przekazać, używając parametru adresu URL $fields lub fields albo nagłówka HTTP/gRPC X-Goog-FieldMask (zobacz dostępne parametry i nagłówki adresów URL). Wartość jest listą rozdzielonych przecinkami ścieżek pól. Dowiedz się więcej o tworzeniu ścieżek pól.

W ten sposób:

  • Maska wszystkich dostępnych pól (do ręcznego sprawdzenia): X-Goog-FieldMask: *
  • Maska pola czasu trwania, dystansu, stanu, stanu i indeksów elementów (przykładowa konfiguracja produkcyjna): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

Bardzo ważne jest uwzględnienie status w masce pola, ponieważ w przeciwnym razie wszystkie wiadomości będą wyglądały poprawnie. Odradzamy używanie maski z odpowiedzią z symbolem wieloznacznym (*), ponieważ:

  • Wybór tylko tych pól, których potrzebujesz, pozwala naszemu serwerowi zapisywać cykle obliczeniowe. Dzięki temu zwracamy wyniki z mniejszym opóźnieniem.
  • Wybór tylko tych pól, których potrzebujesz w zadaniu produkcyjnym, zapewnia stabilną wydajność. W przyszłości możemy dodać więcej pól odpowiedzi, które mogą wymagać dodatkowego czasu na obliczenia. Jeśli wybierzesz wszystkie pola lub jeśli wybierzesz wszystkie pola na najwyższym poziomie, wyniki mogą się pogorszyć, ponieważ nowe pola, które dodamy, będą automatycznie uwzględniane w odpowiedzi.
  • Wybranie tylko pól, których potrzebujesz, powoduje zmniejszenie rozmiaru odpowiedzi, a tym samym zwiększenie przepustowości sieci.

Żądanie HTTP

POST https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix

Adres URL używa składni transkodowania gRPC.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "origins": [
    {
      object (RouteMatrixOrigin)
    }
  ],
  "destinations": [
    {
      object (RouteMatrixDestination)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "departureTime": string,
  "languageCode": string,
  "regionCode": string,
  "extraComputations": [
    enum (ExtraComputation)
  ]
}
Pola
origins[]

object (RouteMatrixOrigin)

Wymagany. Tablica źródeł, która określa wiersze macierzy odpowiedzi. Na stronach zbioru i miejsc docelowych obowiązuje kilka ograniczeń dotyczących rozmiaru:

  • W każdym przypadku liczba elementów (źródło × miejsce docelowe) nie może być większa niż 625.
  • Liczba elementów (pierwotnych × miejsc docelowych) nie może być większa niż 100, jeśli routing BGP ma wartość TRAFFIC_AWARE_OPTIMAL.
  • Liczba punktów pośrednich (źródeł + miejsc docelowych) podana jako placeId nie może być większa niż 50.
destinations[]

object (RouteMatrixDestination)

Wymagany. Tablica miejsc docelowych, która określa kolumny macierzy odpowiedzi.

travelMode

enum (RouteTravelMode)

Opcjonalnie. Określa środek transportu.

routingPreference

enum (RoutingPreference)

Opcjonalnie. Określa sposób obliczania trasy. Serwer próbuje użyć wybranej trasy do obliczenia trasy. Jeśli ustawienie routingu spowoduje błąd lub bardzo długie opóźnienie, zostanie zwrócony błąd. Możesz wybrać tę opcję tylko wtedy, gdy travelMode ma wartość DRIVE lub TWO_WHEELER. W przeciwnym razie żądanie się nie powiedzie.

departureTime

string (Timestamp format)

Opcjonalnie. Godzina wyjazdu. Jeśli nie ustawisz tej wartości, domyślna wartość to czas przesłania żądania. Jeśli ustawisz tę wartość na czas, który upłynął, żądanie się nie powiedzie.

Sygnatura czasowa w formacie „Zulu” UTC3339, z rozdzielczością nanosekundą i maksymalnie 9 cyframi. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

languageCode

string

Opcjonalnie. Kod języka BCP-47, np. „pl-PL” lub „sr-Latn”. Więcej informacji znajdziesz na stronie http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Listę obsługiwanych języków znajdziesz w sekcji Obsługa języków. Jeśli nie podasz tej wartości, język wyświetlania zostanie ustalony na podstawie lokalizacji pierwszego źródła.

regionCode

string

Opcjonalnie. Kod regionu podany jako wartość „ccTLD” („domena najwyższego poziomu”) zawierająca 2 znaki. Więcej informacji znajdziesz na stronie https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains

extraComputations[]

enum (ExtraComputation)

Opcjonalnie. Lista dodatkowych obliczeń, których można użyć do zrealizowania żądania. Uwaga: te dodatkowe obliczenia mogą spowodować zwrócenie dodatkowych pól w odpowiedzi. Te dodatkowe pola muszą być również określone w masce pola, które mają zostać zwrócone w odpowiedzi.

Treść odpowiedzi

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Kasuje informacje o trasie obliczone na potrzeby pary punktu początkowego i miejsca docelowego w interfejsie v2.computeRouteMatrix API. Ten protokół można przesyłać strumieniowo do klienta.

Zapis JSON
{
  "status": {
    object (Status)
  },
  "condition": enum (RouteMatrixElementCondition),
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "originIndex": integer,
  "destinationIndex": integer
}
Pola
status

object (Status)

Kod stanu błędu tego elementu.

condition

enum (RouteMatrixElementCondition)

Wskazuje, czy trasa została znaleziona. Niezależnie od stanu.

distanceMeters

integer

Odległość od trasy w metrach.

duration

string (Duration format)

Czas potrzebny na poruszanie się po trasie. Jeśli ustawisz routingPreference na TRAFFIC_UNAWARE, ta wartość będzie taka sama jak staticDuration. Jeśli ustawisz routingPreference na TRAFFIC_AWARE lub TRAFFIC_AWARE_OPTIMAL, ta wartość zostanie obliczona z uwzględnieniem warunków ruchu.

Czas trwania w sekundach z maksymalnie 9 cyframi poprzedzonymi cyframi s. Przykład: "3.5s".

staticDuration

string (Duration format)

Czas podróży po trasie bez uwzględniania warunków na drodze.

Czas trwania w sekundach z maksymalnie 9 cyframi poprzedzonymi cyframi s. Przykład: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

Dodatkowe informacje o trasie. Na przykład: informacje o ograniczeniach i o płatnych przejazdach

fallbackInfo

object (FallbackInfo)

W niektórych przypadkach, gdy serwer nie może obliczyć trasy o określonych preferencjach dla tej konkretnej pary źródło/miejsce docelowe, może skorzystać z innego trybu obliczeniowego. Gdy używasz tego trybu, to pole zawiera szczegółowe informacje o odpowiedzi odpowiedzi zastępczej. W przeciwnym razie to pole nie jest skonfigurowane.

originIndex

integer

Indeks wskazujący zero w źródle żądania.

destinationIndex

integer

Indeks zerowy miejsca docelowego w żądaniu.

RouteMatrixOrigin

Jedno źródło dla ComputeRouteMatrixRequest

Zapis JSON
{
  "waypoint": {
    object (Waypoint)
  },
  "routeModifiers": {
    object (RouteModifiers)
  }
}
Pola
waypoint

object (Waypoint)

Wymagany. Punkt początkowy punktu

routeModifiers

object (RouteModifiers)

Opcjonalnie. Modyfikatory dla każdej trasy, która posłuży za punkt początkowy

Miejsce docelowe RouteMatrix

Jedno miejsce docelowe dla ComputeRouteMatrixRequest

Zapis JSON
{
  "waypoint": {
    object (Waypoint)
  }
}
Pola
waypoint

object (Waypoint)

Wymagany. Docelowy punkt na trasie

Dodatkowe obliczenia

Dodatkowe obliczenia do wykonania żądania.

Wartości w polu enum
EXTRA_COMPUTATION_UNSPECIFIED Nieużywany. Żądania, które zawierają tę wartość, nie zostaną zrealizowane.
TOLLS Informacje o płatnych elementach macierzy.

TrasaMatrixElement

Stan zwracanej trasy.

Wartości w polu enum
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Używany tylko wtedy, gdy element status elementu jest nieprawidłowy.
ROUTE_EXISTS Znaleziono trasę, a odpowiednie informacje o elemencie zostały uzupełnione.
ROUTE_NOT_FOUND Nie znaleziono żadnej trasy. Pola zawierające informacje o trasach, takie jak distanceMeters lub duration, nie zostaną wypełnione w tym elemencie.