Method: computeRouteMatrix

Pobiera listę miejsc początkowych i docelowych, a następnie zwraca strumień zawierający informacje o trasie dla każdej kombinacji punktu początkowego i docelowego.

UWAGA: ta metoda wymaga określenia maski pola odpowiedzi w danych wejściowych. Maską pola odpowiedzi możesz podać za pomocą parametru URL $fields lub fields albo nagłówka HTTP/gRPC X-Goog-FieldMask (zobacz dostępne parametry i nagłówki adresu URL). Wartość jest rozdzielaną przecinkami listą ś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 kontroli ręcznej): X-Goog-FieldMask: *
  • Maska pola z czasami trwania trasy, odległościami, stanem elementu, stanem i indeksami elementów (przykładowa konfiguracja produkcyjna): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

Ważne jest, aby w masce pola podać status, ponieważ w przeciwnym razie wszystkie wiadomości będą wyglądały na prawidłowe. Google odradza korzystanie z maski pola odpowiedzi z symbolem wieloznacznym (*), ponieważ:

  • Zaznaczenie tylko tych pól, które są Ci potrzebne, pomaga naszemu serwerowi skrócić cykle obliczeniowe, a tym samym zwrócić Ci wynik z mniejszym czasem oczekiwania.
  • Wybór tylko tych pól, których potrzebujesz w zadaniu produkcyjnym, zapewnia stabilny czas oczekiwania. W przyszłości możemy dodać więcej pól odpowiedzi i te nowe pola mogą wymagać więcej czasu na obliczenia. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, może nastąpić spadek wydajności, ponieważ każde nowe pole, które dodajemy, będzie automatycznie uwzględniane w odpowiedzi.
  • Wybranie tylko tych pól, które są Ci potrzebne, spowoduje zmniejszenie rozmiaru odpowiedzi i większą 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,
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
Pola
origins[]

object (RouteMatrixOrigin)

To pole jest wymagane. Tablica źródeł, która określa wiersze macierzy odpowiedzi. W przypadku mocy zbioru miejsc wylotu i przylotu obowiązują pewne ograniczenia dotyczące rozmiaru:

  • Suma liczby miejsc wylotu + liczba miejsc docelowych określonych jako placeId lub address nie może być większa niż 50.
  • Iloczyn liczby miejsc wylotu × liczba miejsc docelowych w każdym przypadku nie może przekraczać 625.
  • Jeśli ustawienie routingu ma wartość TRAFFIC_AWARE_OPTIMAL, iloczyn liczby punktów początkowych × liczbę miejsc docelowych nie może przekraczać 100.
  • Jeśli tryb podróży jest ustawiony na TRANSIT, iloczyn liczby miejsc wylotu × liczba miejsc docelowych nie może przekraczać 100.
destinations[]

object (RouteMatrixDestination)

To pole jest 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ć wybranych preferencji routingu do obliczenia trasy. Jeśli ustawienia routingu spowodują błąd lub bardzo długi czas oczekiwania, zostanie zwrócony błąd. Możesz określić tę opcję tylko wtedy, gdy travelMode ma wartość DRIVE lub TWO_WHEELER. W przeciwnym razie żądanie nie powiedzie się.

departureTime

string (Timestamp format)

Opcjonalnie. Godzina odjazdu. Jeśli nie ustawisz tej wartości, domyślnie zostanie użyta godzina przesłania żądania. UWAGA: departureTime w przeszłości możesz określić tylko wtedy, gdy RouteTravelMode ma wartość TRANSIT.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy 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: tę opcję można ustawić tylko wtedy, gdy zasada RouteTravelMode ma wartość TRANSIT. Możesz podać albo departureTime, albo arrivalTime, ale nie obie te wartości.

Sygnatura czasowa w formacie RFC3339 UTC „Zulu”, z rozdzielczością nanosekundy 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, np. „en-US” lub „sr-Latn”. Więcej informacji znajdziesz w artykule Identyfikator lokalny 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 określany na podstawie lokalizacji pierwszego punktu początkowego.

regionCode

string

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

extraComputations[]

enum (ExtraComputation)

Opcjonalnie. Lista dodatkowych obliczeń, które mogą zostać użyte do realizacji żądania. Uwaga: te dodatkowe obliczenia mogą zwrócić dodatkowe pola w odpowiedzi. Te dodatkowe pola muszą być też określone w masce pól, aby zostały zwrócone w odpowiedzi.

trafficModel

enum (TrafficModel)

Opcjonalnie. Określa założenia do wykorzystania przy obliczaniu czasu natężenia ruchu. To ustawienie wpływa na wartość zwracaną w polu czasu trwania w polu RouteMatrixElement, które zawiera przewidywany czas w ruchu określony na podstawie średnich historycznych. RoutingPreference do TRAFFIC_AWARE_OPTIMAL i RouteTravelMode do DRIVE. Jeśli żądanie ruchu jest wysyłane, a TrafficModel nie jest określony, przyjmuje domyślnie wartość BEST_GUESS.

transitPreferences

object (TransitPreferences)

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

Treść odpowiedzi

Zawiera informacje o trasie obliczone dla pary punktu początkowego i docelowego w interfejsie API v2.computeRouteMatrix. Protokół ten można przesyłać 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. Niezależność od statusu.

distanceMeters

integer

Długość trasy w metrach.

duration

string (Duration format)

Czas potrzebny na nawigację 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, wartość ta jest obliczana z uwzględnieniem warunków ruchu.

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

staticDuration

string (Duration format)

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

Czas trwania w sekundach z maksymalnie 9 cyframi po przecinku, kończącym się cyframi „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 może obliczyć trasy na podstawie podanych ustawień dla tej konkretnej pary miejsca docelowego i miejsca docelowego, może przełączyć się na inny tryb obliczania. W przypadku używania trybu awaryjnego to pole zawiera szczegółowe informacje o odpowiedzi zastępczej. W przeciwnym razie to pole jest nieskonfigurowane.

localizedValues

object (LocalizedValues)

Tekstowa reprezentacja właściwości obiektu RouteMatrixElement.

originIndex

integer

Liczony od zera indeks źródła w żądaniu.

destinationIndex

integer

Indeks miejsca docelowego w żądaniu, który jest liczony od zera.

RouteMatrixOrigin

Jedno źródło dla ComputeRouteMatrixRequest

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

object (Waypoint)

To pole jest wymagane. Punkt na trasie początkowy

routeModifiers

object (RouteModifiers)

Opcjonalnie. Modyfikatory każdej trasy, która używa tego elementu jako punktu początkowego

RouteMatrixDestination

Jedno miejsce docelowe dla ComputeRouteMatrixRequest

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

object (Waypoint)

To pole jest wymagane. Docelowy punkt na trasie

ExtraComputation

Dodatkowe obliczenia do wykonania podczas wykonywania żądania.

Wartości w polu enum
EXTRA_COMPUTATION_UNSPECIFIED Niewykorzystywany. Żądania zawierające tę wartość będą kończyć 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żywana tylko wtedy, gdy status elementu jest nieprawidłowy.
ROUTE_EXISTS Znaleziono trasę i uzupełniono odpowiednie informacje o elemencie.
ROUTE_NOT_FOUND Nie znaleziono trasy. Pola zawierające informacje o trasie, takie jak distanceMeters czy duration, nie zostaną wypełnione w elemencie.

LocalizedValues

Tekstowa reprezentacja określonych właściwości.

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

object (LocalizedText)

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

duration

object (LocalizedText)

Czas trwania przedstawiony w formie tekstowej z uwzględnieniem warunków drogowych. Uwaga: jeśli żądanie informacji o ruchu nie zostało wysłane, ta wartość jest taka sama jak wartość staticDuration.

staticDuration

object (LocalizedText)

Czas trwania przedstawiony w formie tekstowej bez uwzględniania warunków drogowych.

transitFare

object (LocalizedText)

Opłata za transport publiczny w formie tekstowej.