Używaj interfejsu Routes API do obliczania odległości i czasu trwania trasy wielu miejsc wylotu i przylotu, wywołując funkcję Metoda computeRouteMatrix (REST) lub strumieniowania ComputeRouteMatrix (gRPC).
Biorąc pod uwagę listę miejsc wylotu i miejsc docelowych, metoda oblicza odległość i czas trwania trasy, zaczynając od każdego punktu początkowego i kończąc na każdym z miejsc docelowych.
Uzyskiwanie macierzy tras transportu publicznego
Możesz też wyznaczyć macierz tras dla transportu publicznego. Dla Przykład: Wybór trasy dojazdu transportem publicznym.
Limity żądań
Metody macierzy tras Compute wymuszają to żądanie i określ ograniczenia dla punktów pośrednich korzystających z adresu lub identyfikatora miejsca, jak również dla elementów. Elementy są tras między miejscem wylotu a celem podróży w macierzy tras, więc liczba elementów to liczba punktów początkowych razy liczba miejsc docelowych. Dla: Jeśli na przykład masz 10 punktów początkowych i 10 miejsc docelowych, otrzymasz 100 elementów:
Liczba elementów nie może przekraczać 625 w przypadku tras. które nie są trasami:
TRANSIT
.Jeśli określisz trasę
TRANSIT
, liczba elementów nie może przekroczyć 100.Jeśli określisz
TRAFFIC_AWARE_OPTIMAL
, liczba elementów nie będzie mogła zostać niż 100. Więcej informacji oTRAFFIC_AWARE_OPTIMAL
: Określ, jak i czy chcesz uwzględniać dane o ruchu.Jeśli określisz miejsca wylotu lub miejsca docelowe za pomocą adresu lub identyfikatora miejsca, określisz w ten sposób do 50.
Błędy odpowiedzi
Jedną z funkcji metod macierzy tras Compute jest to, że błędy mogą dla całej odpowiedzi lub poszczególnych elementów odpowiedzi. Jeśli na przykład żądanie ma nieprawidłowy format, cała odpowiedź zawiera błąd (na przykład nie ma początków).
Jeśli jednak błąd dotyczy podzbioru elementów w odpowiedzi (na przykład nie można obliczyć trasy dla jednego kombinacji miejsca wylotu i miejsca docelowego), to jedynie elementy, na które wpływa reguła zwraca kod błędu.
Wyniki strumienia gRPC
ComputeRouteMatrix Metoda gRPC pobiera listę źródeł i miejsc docelowych oraz zwraca strumień zawierające informacje o trasach dla wszystkich połączeń miejsca wylotu i celu podróży. Wyniki są zwracane jako strumień, więc nie musisz czekać, aż wszystkie możliwe kombinacje tras są obliczane przed rozpoczęciem przetwarzania wyników.
Nie ma gwarancji, że elementy zwrócone przez strumień zostaną zwrócone w żadnym
zamówienie. Dlatego każdy element odpowiedzi zawiera atrybuty origin_index
oraz
destination_index
W przypadku miejsc wylotu i przylotu określonych w żądaniu
początek trasy jest odpowiednikiem wartości origins[origin_index]
dla danego elementu
a cel podróży jest odpowiednikiem destinations[destination_index]
.
Tablice te mają indeks zerowy. Ważne jest, aby zachowywać punkt początkowy i
kolejność list miejsc docelowych.
Przykłady obliczania macierzy tras
użycie funkcji computeRouteMatrix, w żądaniu HTTP do obliczenia macierzy tras.
Przykład HTTP
Poniżej znajduje się przykład żądania HTTP computeRouteMatrix
. W tym przykładzie
Ty:
Określ tablicę z dwoma punktami początkowymi i dwoma docelowymi punktami pośrednimi. Metoda oblicza trasę z każdego punktu początkowego do każdego miejsca docelowego, aby odpowiedź zawiera 4 trasy.
w tablicy pierwszy element ma indeks 0, drugi to indeks 1, i tak dalej.
Dołącz maskę pola odpowiedzi, aby określić, które pola wartości odpowiedź (REST) lub ComputeRoutesResponse (gRPC). W tym przykładzie skonfigurujemy żądanie do zwrócenia
originIndex
,destinationIndex
,duration
,distanceMeters
,status
icondition
na każdej trasie. Więcej informacji: Wybierz pola, które chcesz zwrócić.
curl -X POST -d '{ "origins": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420761, "longitude": -122.081356 } } }, "routeModifiers": { "avoid_ferries": true} }, { "waypoint": { "location": { "latLng": { "latitude": 37.403184, "longitude": -122.097371 } } }, "routeModifiers": { "avoid_ferries": true} } ], "destinations": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420999, "longitude": -122.086894 } } } }, { "waypoint": { "location": { "latLng": { "latitude": 37.383047, "longitude": -122.044651 } } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \ 'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'
Odpowiedź zawiera 4 możliwe trasy połączenia wszystkich źródeł oraz punkty pośrednie na trasie.
Zidentyfikuj w odpowiedzi każdą trasę, korzystając z parametrów originIndex
i
Pola odpowiedzi: destinationIndex
. Na przykład originIndex
o 1 w parametrze
odpowiada trasie obliczonej z punktu pośredniego w indeksie 1
origins
w żądaniu.
[ { "originIndex": 0, "destinationIndex": 0, "status": {}, "distanceMeters": 822, "duration": "160s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 0, "status": {}, "distanceMeters": 2919, "duration": "361s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 1, "status": {}, "distanceMeters": 5598, "duration": "402s", "condition": "ROUTE_EXISTS" }, { "originIndex": 0, "destinationIndex": 1, "status": {}, "distanceMeters": 7259, "duration": "712s", "condition": "ROUTE_EXISTS" } ]
Przykłady gRPC
Przykłady żądań gRPC znajdziesz w Przykładowe żądanie gRPC Jawa na tej stronie wywołujemy zarówno trasy Compute, macierz tras Compute.