Odległość i czas trwania trasy dla wielu miejsc pochodzenia i miejsc docelowych możesz obliczyć za pomocą metody ComputeRouteMatrix
interfejsu Routes Preferred API. ComputeRouteMatrix
obsługuje zarówno strumieniowe wywołania gRPC, jak i wywołania HTTP REST.
Na podstawie listy par „miejsce wylotu” i „miejsce docelowe” funkcja ComputeRouteMatrix
oblicza odległość i czas trwania trasy, która zaczyna się w każdym miejscu wylotu i kończy w każdym miejscu docelowym. Każdy element strumienia odpowiada informacjom dotyczącym jednej trasy.
Metoda ComputeRouteMatrix
ma kilka zalet w porównaniu z usługą Distance Matrix Service:
- Strumieniowanie umożliwia zwracanie elementów przed obliczeniem całej macierzy, co zmniejsza opóźnienie.
ComputeRouteMatrix
oferuje szczegółowe opcje obliczania ruchu, dzięki którym możesz podejmować decyzje dotyczące kompromisu między jakością a opóźnieniem.- Żądania są wykonywane z wyższym priorytetem w infrastrukturze Google, co zapewnia większą dostępność.
- Wskazówki (kierunek jazdy) i informacje o stronie drogi można określić dla punktów drogi.
- Możesz poprosić o zwrot informacji o opłatach drogowych, a także odległości i szacowanego czasu dotarcia.
Włączanie metody ComputeRouteMatrix
Zanim użyjesz metody ComputeRouteMatrix
w kodzie, musisz ją włączyć. Więcej informacji o włączaniu metod interfejsu Routes Preferred API znajdziesz w artykule Pierwsze kroki.
Używanie metody ComputeRouteMatrix
Metoda ComputeRouteMatrix
jest dostępna w punkcie końcowym Trasy preferowane v1.
Aby dowiedzieć się więcej, zapoznaj się z tymi dokumentami:
Podane niżej ogólne kroki opisują, jak użyć gRPC do wywołania metody ComputeRouteMatrix
:
Pobierz niezbędne protobufory z repozytorium googleapis:
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
Pamiętaj, że niektóre systemy kompilacji, takie jak Go, mogą wykonać to automatycznie.
Za pomocą preferowanego języka i zestawu narzędzi do kompilacji wygeneruj odpowiedni kod protobufora.
Wygeneruj prośbę. Wraz z tą prośbą należy przesłać 2 elementy metadanych:
- Wartość X-Goog-Api-Key musi być ustawiona na klucz interfejsu API.
Parametr X-Goog-Fieldmask musi być ustawiony jako rozdzielona przecinkami lista pól, których potrzebujesz w odpowiedzi. Na przykład: X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Możesz użyć symbolu wieloznacznego (*), aby oznaczyć wszystkie pola, ale nie jest to zalecane. Użyj znaku wieloznacznego, aby przetestować i zrozumieć odpowiedź interfejsu API, ale w kodzie produkcyjnym wyraźnie podaj pola, które Cię interesują, w masce pola.
Więcej informacji o tworzeniu ciągu maski pola znajdziesz na stronie https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Pamiętaj, że wyłączenie pól, których nie potrzebujesz, może zmniejszyć opóźnienie, ponieważ te pola mogą wymagać dalszych obliczeń. Opóźnienie będzie stabilne, jeśli określisz potrzebne pola, a nowe pola, które wymagają więcej obliczeń, zostaną dodane później.
Wyślij prośbę do
routespreferred.googleapis.com:443
.Musisz użyć protokołu TLS.
Przykłady korzystania z metody ComputeRouteMatrix
znajdziesz w artykule Przykłady obliczania macierzy tras (wersja beta).
Jedną z cech charakterystycznych metod ComputeRouteMatrix
jest to, że kody błędów mogą być zwracane dla całego strumienia lub dla poszczególnych elementów. Na przykład połączenie strumienia zwraca błąd, jeśli żądanie ma nieprawidłowy format (np. ma zero źródeł). Jeśli jednak błąd dotyczy tylko kilku elementów strumienia (np. nieprawidłowe ustawienie identyfikatora miejsca docelowego), tylko te elementy zawierają kody błędów.
Nie ma gwarancji, że elementy zwrócone przez strumień będą zwracane w żadnej kolejności. Dlatego każdy element zawiera element origin_index
i destination_index
. W przypadku źródeł i miejsc docelowych określonych w żądaniu źródło trasy jest równoważne z origins[origin_index]
dla danego elementu, a miejsce docelowe trasy jest równoważne z destinations[destination_index]
. Te tablice są indeksowane od zera. Ważne jest przechowywanie zamówień na listy miejsc początkowych i docelowych.
Obliczanie opłat za przejazd autostradą
Informacje o obliczaniu opłat za przejazd znajdziesz w artykule Obliczanie opłat za przejazd.
Przykłady obliczania opłat za przejazd znajdziesz w artykule Przykłady obliczania macierzy tras.