Użyj interfejsu Routes API, aby obliczyć odległość i czas trwania trasy dla wielu punktów początkowych i docelowych, wywołując metodę computeRouteMatrix (REST) lub metodę przesyłania strumieniowego ComputeRouteMatrix (gRPC).
Na podstawie listy punktów początkowych i docelowych metoda oblicza odległość i czas trwania trasy rozpoczynającej się w każdym punkcie początkowym i kończącej się w każdym punkcie docelowym.
Pobieranie macierzy tras transportu publicznego
Możesz też obliczyć macierz trasy w przypadku transportu publicznego. Przykład znajdziesz w artykule Uzyskiwanie macierzy tras transportu publicznego.
Limity żądań
Metody Compute Route Matrix wymuszają te limity żądań dotyczące punktów pośrednich z użyciem adresów lub identyfikatorów miejsc oraz elementów. Elementy to trasy między poszczególnymi punktami początkowymi i docelowymi w macierzy tras, więc liczba elementów to liczba punktów początkowych razy liczba punktów docelowych. Jeśli np. masz 10 lokalizacji początkowych i 10 lokalizacji docelowych, masz 100 elementów:
Liczba elementów nie może przekraczać 625 w przypadku tras, które nie są trasami
TRANSIT
.Jeśli określisz
TRANSIT
trasę, liczba elementów nie może przekraczać 100.Jeśli podasz
TRAFFIC_AWARE_OPTIMAL
, liczba elementów nie może przekraczać 100. Więcej informacji oTRAFFIC_AWARE_OPTIMAL
znajdziesz w artykule Określanie sposobu uwzględniania danych o ruchu i tego, czy mają być uwzględniane.Jeśli określasz punkty początkowe lub docelowe za pomocą adresu lub identyfikatora miejsca, możesz określić w ten sposób maksymalnie 50 punktów.
Błędy odpowiedzi
Jedną z cech metod Compute Route Matrix jest to, że błędy mogą być zwracane dla całej odpowiedzi lub dla poszczególnych elementów odpowiedzi. Na przykład cała odpowiedź zawiera błąd, jeśli żądanie jest nieprawidłowo sformułowane (np. ma 0 źródeł).
Jeśli jednak błąd dotyczy podzbioru elementów w odpowiedzi (np. nie można obliczyć trasy dla jednej kombinacji punktu początkowego i docelowego), kod błędu zwracają tylko elementy, których dotyczy błąd.
Wyniki strumienia gRPC
Metoda gRPC ComputeRouteMatrix przyjmuje listę punktów początkowych i docelowych oraz zwraca strumień zawierający informacje o trasie dla każdej kombinacji punktu początkowego i docelowego. Wyniki są zwracane jako strumień, więc nie musisz czekać, aż zostaną obliczone wszystkie możliwe kombinacje tras, aby rozpocząć przetwarzanie wyników.
Elementy zwracane przez strumień nie muszą być zwracane w określonej kolejności. Dlatego każdy element odpowiedzi zawiera elementy origin_index
i destination_index
. W przypadku miejsc wyjazdu i miejsc docelowych określonych w żądaniu miejsce wyjazdu jest równoważne origins[origin_index]
w przypadku danego elementu, a miejsce docelowe jest równoważne destinations[destination_index]
.
Tablice są indeksowane od zera. Ważne jest, aby przechowywać kolejność list źródeł i miejsc docelowych.
Przykłady obliczania macierzy tras
Aby obliczyć macierz tras, użyj metody computeRouteMatrix w żądaniu HTTP.
Przykład HTTP
Poniższy przykład pokazuje żądanie HTTP computeRouteMatrix
. W tym przykładzie:
Określ tablicę 2 punktów pośrednich w miejscu odjazdu i 2 punktów pośrednich w miejscu docelowym. Metoda oblicza trasę z każdego miejsca początkowego do każdego miejsca docelowego, więc odpowiedź zawiera 4 trasy.
W tablicy pierwszy element ma indeks 0, drugi 1 itd.
Dołącz maskę pola odpowiedzi, aby określić, które pola odpowiedzi (REST) lub ComputeRoutesResponse (gRPC) mają być zwracane. W tym przykładzie skonfiguruj żądanie tak, aby zwracało parametry
originIndex
,destinationIndex
,duration
,distanceMeters
,status
icondition
dla każdej trasy. Więcej informacji znajdziesz w artykule Wybieranie pól do zwrócenia.
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 dla kombinacji wszystkich punktów pośrednich pochodzenia i miejsca docelowego.
Każdą trasę w odpowiedzi oznacz za pomocą pól odpowiedzi originIndex
i destinationIndex
. Na przykład wartość originIndex
1 w odpowiedzi odpowiada trasie obliczonej na podstawie punktu pośredniego o indeksie 1 w tablicy 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
Na przykład w przypadku żądań gRPC zapoznaj się z przykładami w artykule Przykładowe żądanie gRPC. Przykład w języku Java na tej stronie wywołuje zarówno interfejs Compute Routes, jak i Compute Route Matrix.