Method: computeRouteMatrix

Zwraca listę miejsc odjazdu i miejsc docelowych, a potem 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ć przy użyciu parametru adresu 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 wszystkich dostępnych pól (do sprawdzenia ręcznej): X-Goog-FieldMask: *
  • Maska pola z czasami trwania tras, odległościami, stanem, stanem i indeksami elementów (przykładowa konfiguracja produkcyjna): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

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

  • Zaznaczenie tylko tych pól, które są Ci potrzebne, pozwala naszemu serwerowi skrócić cykle obliczeniowe, a przez to zwracać Ci wyniki z mniejszym opóźnieniem.
  • Wybór tylko tych pól, które są potrzebne w zadaniu produkcyjnym, zapewnia stabilność czasu oczekiwania. W przyszłości możemy dodać więcej pól odpowiedzi, a te nowe pola mogą wymagać więcej czasu na obliczenia. Jeśli zaznaczysz wszystkie pola lub wybierzesz wszystkie pola na najwyższym poziomie, może nastąpić spadek wydajności, ponieważ każde dodane przez nas nowe pole zostanie automatycznie uwzględnione w odpowiedzi.
  • Wybranie tylko tych pól, które są potrzebne, zmniejsza rozmiar 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,
  "units": enum (Units),
  "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 odniesieniu do mocy zbioru miejsc początkowych i miejsc docelowych 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 miejsc wylotu × liczba miejsc docelowych w żadnym przypadku nie może przekraczać 625.
  • Iloczyn liczby punktów początkowych × liczbę miejsc docelowych nie może być większy niż 100, jeśli ustawienie routingPreference jest ustawiona na TRAFFIC_AWARE_OPTIMAL.
  • Jeśli tryb TravelMode jest ustawiony na TRANSIT, iloczyn liczby miejsc wylotu pomnożonego przez liczbę 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 wyznaczyć trasę, korzystając z wybranego ustawienia routingu. Jeśli ustawienie routingu powoduje błąd lub bardzo długi czas oczekiwania, zwracany jest błąd. Możesz określić 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 odjazdu. Jeśli nie ustawisz tej wartości, domyślną wartością będzie czas przesłania żądania. UWAGA: w przeszłości można było określić departureTime tylko wtedy, gdy opcja RouteTravelMode ma wartość TRANSIT.

Sygnatura czasowa w formacie „Zulu” RFC3339 UTC 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: to ustawienie można ustawić tylko wtedy, gdy RouteTravelMode ma wartość TRANSIT. Możesz podać wartość departureTime lub arrivalTime, ale nie obie te wartości.

Sygnatura czasowa w formacie „Zulu” RFC3339 UTC 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, np. „en-US” lub „sr-Latn”. Więcej informacji znajdziesz w artykule Lokalny identyfikator 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 zostanie określony na podstawie lokalizacji pierwszego punktu początkowego.

regionCode

string

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

units

enum (Units)

Opcjonalnie. Określa jednostki miary wyświetlane w polach wyświetlania.

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 pola, aby zostały zwrócone w odpowiedzi.

trafficModel

enum (TrafficModel)

Opcjonalnie. Określa założenia do obliczenia czasu w ruchu. To ustawienie wpływa na wartość zwracaną w polu czasu trwania w polu RouteMatrixElement, które zawiera przewidywany czas w ruchu na podstawie średnich historycznych. Z: 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 tras TRANSIT. UWAGA: transitPreferences możesz określić tylko wtedy, gdy RouteTravelMode ma wartość TRANSIT.

Treść odpowiedzi

Zawiera informacje o trasie obliczonej 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. Bez względu na status.

distanceMeters

integer

Długość trasy w metrach.

duration

string (Duration format)

Długość czasu potrzebnego na pokonanie trasy. Jeśli ustawisz routingPreference na TRAFFIC_UNAWARE, ta wartość jest taka sama jak staticDuration. Jeśli ustawisz routingPreference na TRAFFIC_AWARE lub TRAFFIC_AWARE_OPTIMAL, ta wartość 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 przy podanych preferencjach dla tej konkretnej pary miejsca docelowego i miejsca docelowego, może przełączyć się na inny tryb obliczania. 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)

Reprezentacje tekstowe właściwości obiektu RouteMatrixElement.

originIndex

integer

Oparty na zera indeks źródła w żądaniu.

destinationIndex

integer

Oparty na zera indeks miejsca docelowego w żądaniu.

RouteMatrixOrigin

Jedno źródło dla ComputeRouteMatrixRequest

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

object (Waypoint)

To pole jest wymagane. Punkt początkowy

routeModifiers

object (RouteModifiers)

Opcjonalnie. Modyfikatory wszystkich tras, które wykorzystują to jako punkt początkowy

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 realizacji żądania.

Wartości w polu enum
EXTRA_COMPUTATION_UNSPECIFIED Nieużywany. Żądania zawierające tę wartość będą kończyć się niepowodzeniem.
TOLLS Informacje o opłatach związanych z elementami macierzy.

RouteMatrixElementCondition

Stan zwracanej trasy.

Wartości w polu enum
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Używana tylko wtedy, gdy status elementu nie jest prawidłowy.
ROUTE_EXISTS Znaleziono trasę i uzupełniono odpowiednie informacje dla elementu.
ROUTE_NOT_FOUND Nie znaleziono trasy. Pola zawierające informacje o trasie, takie jak distanceMeters czy duration, nie będą wypełniane w elemencie.

LocalizedValues

Reprezentacje tekstowe określonych właściwości.

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

object (LocalizedText)

Długość podróży przedstawiona w formie tekstowej.

duration

object (LocalizedText)

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

staticDuration

object (LocalizedText)

Czas trwania przedstawiony w formie tekstowej bez uwzględnienia warunków na drodze.

transitFare

object (LocalizedText)

Opłata za transport w formie tekstowej.