Method: computeRouteMatrix

Przeszukuje listę miejsc wylotu i przylotu, a następnie zwraca strumień zawierający informacje o trasie dla każdej kombinacji miejsca wyjazdu i celu podróży.

UWAGA: ta metoda wymaga określenia maski pola odpowiedzi w danych wejściowych. Maską pola odpowiedzi możesz podać, używając parametru adresu URL $fields lub fields albo nagłówka HTTP/gRPC X-Goog-FieldMask (zobacz dostępne parametry i nagłówki adresu URL). Wartość ma postać listy rozdzielonych przecinkami ścieżek pól. Zapoznaj się ze szczegółową dokumentacją tworzenia ścieżek pól.

Na przykład w tej metodzie:

  • Maska pola wszystkich dostępnych pól (do sprawdzenia ręcznego): X-Goog-FieldMask: *
  • Maska pola z czasami trwania trasy, odległościami, stanem elementu, stanem i indeksami elementów (przykładowa konfiguracja wersji produkcyjnej): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

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

  • Wybranie tylko tych pól, których potrzebujesz, pomaga naszemu serwerowi oszczędzać cykle obliczeniowe, dzięki czemu możemy zwrócić Ci wyniki z krótszym czasem oczekiwania.
  • Wybór tylko tych pól, które są potrzebne w zadaniu produkcyjnym, zapewnia stabilną wydajność opóźnień. W przyszłości możemy dodać więcej pól odpowiedzi, a te nowe pola mogą wymagać dłuższego czasu na obliczenia. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, wydajność może się zmniejszyć, ponieważ nowe pola, które dodamy, będą automatycznie uwzględniane w odpowiedzi.
  • Jeśli wybierzesz tylko te pola, których potrzebujesz, rozmiar odpowiedzi będzie mniejszy, a tym samym większa przepustowość 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,
  "arrivalTime": string,
  "languageCode": string,
  "regionCode": string,
  "units": enum (Units),
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
Pola
origins[]

object (RouteMatrixOrigin)

Wymagane. Tablica źródeł, która określa wiersze macierzy odpowiedzi. W odniesieniu do mocy zbioru miejsc wylotu i przeznaczenia obowiązuje kilka ograniczeń dotyczących rozmiaru:

  • Suma liczby miejsc wylotu + liczba miejsc docelowych określonych jako placeId lub address nie może być większa niż 50.
  • Iloczyn liczby punktów początkowych × liczba miejsc docelowych w żadnym przypadku nie może przekraczać 625.
  • Iloczyn liczby źródeł × liczba miejsc docelowych nie może być większy niż 100, jeśli parametr routingPreference jest ustawiony na wartość TRAFFIC_AWARE_OPTIMAL.
  • Iloczyn liczby punktów początkowych × liczba miejsc docelowych nie może być większy niż 100, jeśli tryb podróży ma wartość TRANSIT.
destinations[]

object (RouteMatrixDestination)

Wymagane. 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ć wybranego ustawienia routingu do obliczenia trasy. Jeśli ustawienie routingu powoduje błąd lub bardzo długie opóźnienie, zwracany jest błąd. Tę opcję możesz określić tylko wtedy, gdy travelMode ma wartość DRIVE lub TWO_WHEELER. W przeciwnym razie żądanie nie zostanie zrealizowane.

departureTime

string (Timestamp format)

Opcjonalnie: Godzina odjazdu. Jeśli nie ustawisz tej wartości, domyślnie będzie przyjęta data przesłania żądania. UWAGA: pole departureTime z przeszłości możesz określić tylko wtedy, gdy opcja RouteTravelMode ma wartość TRANSIT.

Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

arrivalTime

string (Timestamp format)

Opcjonalnie: Godzina przyjazdu. UWAGA: ten parametr można ustawić tylko wtedy, gdy zasada RouteTravelMode ma wartość TRANSIT. Możesz określić departureTime lub arrivalTime, ale nie oba jednocześnie.

Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: "2014-10-02T15:01:23Z" i "2014-10-02T15:01:23.045123456Z".

languageCode

string

Opcjonalnie: Kod języka BCP-47, na przykład „en-US”. czy „sr-Latn”. Więcej informacji znajdziesz w sekcji Identyfikator języka Unicode. 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 będzie ustalany na podstawie lokalizacji pierwszego punktu początkowego.

regionCode

string

Opcjonalnie: Kod regionu określony jako dwuznakowa wartość domeny ccTLD („domeny najwyższego poziomu”). Więcej informacji znajdziesz w artykule Domeny krajowe najwyższego poziomu.

units

enum (Units)

Opcjonalnie: Określa jednostki miary dla pól wyświetlanych.

extraComputations[]

enum (ExtraComputation)

Opcjonalnie: Lista dodatkowych obliczeń, które mogą zostać wykorzystane do wykonania żądania. Uwaga: te dodatkowe obliczenia mogą zwrócić dodatkowe pola w odpowiedzi. Te dodatkowe pola muszą być również określone w masce pola, aby została zwrócona w odpowiedzi.

trafficModel

enum (TrafficModel)

Opcjonalnie: Określa założenia, które należy zastosować przy obliczaniu czasu w ruchu. To ustawienie wpływa na wartość zwracaną w polu czasu trwania w polu RouteMatrixElement, które zawiera przewidywany czas ruchu określony na podstawie średnich wartości historycznych. RoutingPreference do TRAFFIC_AWARE_OPTIMAL i RouteTravelMode do DRIVE. Domyślna wartość to BEST_GUESS, jeśli żądanie dotyczy ruchu, a TrafficModel nie jest określony.

transitPreferences

object (TransitPreferences)

Opcjonalnie: Określa preferencje, które mają wpływ na trasę zwracaną dla TRANSIT tras. UWAGA: pole transitPreferences możesz określić tylko wtedy, gdy pole RouteTravelMode ma wartość TRANSIT.

Treść odpowiedzi

Zawiera informacje o trasie obliczone dla pary punktu początkowego i docelowego w interfejsie v2.computeRouteMatrix API. To proto może być przesyłane strumieniowo do klienta.

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

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

object (Status)

Kod stanu błędu tego elementu.

condition

enum (RouteMatrixElementCondition)

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

distanceMeters

integer

Odległość przebyta trasa w metrach.

duration

string (Duration format)

Czas potrzebny na nawigowanie 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ść jest obliczana z uwzględnieniem warunków na drodze.

Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „s”. Przykład: "3.5s".

staticDuration

string (Duration format)

Długość trasy bez uwzględnienia warunków drogowych.

Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „s”. Przykład: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

Dodatkowe informacje o trasie. Na przykład: informacje o ograniczeniach i opłatach

fallbackInfo

object (FallbackInfo)

W niektórych przypadkach, gdy serwer nie jest w stanie obliczyć trasy przy określonych preferencjach dla danej pary punktu początkowego i docelowego, może użyć innego trybu obliczeń. Gdy używany jest tryb zastępczy, to pole zawiera szczegółowe informacje o odpowiedzi kreacji zastępczej. W przeciwnym razie to pole jest nieskonfigurowane.

localizedValues

object (LocalizedValues)

Tekstowe przedstawienie właściwości elementu RouteMatrixElement.

originIndex

integer

Indeks liczony od zera dla punktu początkowego w żądaniu.

destinationIndex

integer

Indeks liczony od zera dla miejsca docelowego w żądaniu.

RouteMatrixOrigin

Pojedyncze źródło dla żądania ComputeRouteMatrixRequest

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

object (Waypoint)

Wymagane. Punkt początkowy

routeModifiers

object (RouteModifiers)

Opcjonalnie: Modyfikatory każdej trasy, która jako punkt początkowy

RouteMatrixDestination

Jedno miejsce docelowe dla ComputeRouteMatrixRequest

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

object (Waypoint)

Wymagane. Docelowy punkt na trasie

ExtraComputation

Dodatkowe obliczenia do wykonania podczas realizacji żądania.

Wartości w polu enum
EXTRA_COMPUTATION_UNSPECIFIED Nieużywane. Żądania zawierające tę wartość zakończą się niepowodzeniem.
TOLLS Informacje o opłatach za elementy macierzy.

RouteMatrixElementCondition

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ę i uzupełniono odpowiednie informacje dla elementu.
ROUTE_NOT_FOUND Nie znaleziono trasy. Pola zawierające informacje o trasie, np. distanceMeters lub duration, nie zostaną wypełnione w elemencie.

LocalizedValues

Tekstowe przedstawienie określonych usług.

Zapis JSON
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
Pola
distance

object (LocalizedText)

Odległość podróży w formie tekstowej.

duration

object (LocalizedText)

Czas trwania wyrażony w formie tekstowej z uwzględnieniem warunków na drodze. Uwaga: jeśli nie zażądano informacji o ruchu, ta wartość będzie taka sama jak staticDuration.

staticDuration

object (LocalizedText)

Czas trwania wyrażony w formie tekstowej bez uwzględnienia warunków na drodze.

transitFare

object (LocalizedText)

Cena za transport publiczny w formie tekstowej.