Możesz obliczyć odległość i czas trwania trasy dla wielu źródeł i miejsc docelowych, korzystając z metody ComputeRouteMatrix interfejsu Routes Preferred API. Metoda ComputeRouteMatrix obsługuje zarówno strumieniowe wywołania gRPC, jak i wywołania REST HTTP.
Na podstawie listy par źródeł i miejsc docelowych metoda ComputeRouteMatrix oblicza odległość i czas trwania trasy, która zaczyna się w każdym źródle i kończy w każdym miejscu docelowym. Każdy element strumienia odpowiada informacjom o pojedynczej trasie.
Metoda ComputeRouteMatrix ma kilka zalet w porównaniu z usługą Distance Matrix Service:
- Strumieniowanie umożliwia zwracanie elementów, zanim zostanie obliczona cała macierz, co zmniejsza opóźnienie.
- Metoda
ComputeRouteMatrixma szczegółowe opcje obliczania natężenia ruchu, co pozwala podejmować decyzje dotyczące kompromisu między jakością a opóźnieniem. - Żądania są wykonywane z wyższym priorytetem w infrastrukturze Google, co zwiększa dostępność.
- Możesz określić kierunek (kierunek podróży) i informacje o stronie drogi dla punktów pośrednich.
- Możesz poprosić o zwrócenie informacji o opłatach drogowych wraz z odległością trasy i szacowanym czasie dotarcia na miejsce.
Włączanie metody ComputeRouteMatrix
Zanim zaczniesz używać metody ComputeRouteMatrix w kodzie, musisz ją włączyć. Więcej informacji o włączaniu metod interfejsu Routes Preferred API
znajdziesz w artykule Pierwsze kroki.
Korzystanie z metody ComputeRouteMatrix
Metoda ComputeRouteMatrix jest dostępna w punkcie końcowym v1 interfejsu Routes Preferred API.
Więcej informacji znajdziesz w tych dokumentach:
Poniższe ogólne kroki opisują, jak używać gRPC do wywoływania metody ComputeRouteMatrix:
Pobierz niezbędne protokoły z repozytorium googleapis:
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
Pamiętaj, że niektóre systemy kompilacji, np. Go, mogą to zrobić automatycznie.
Wygeneruj odpowiedni kod protokołu w preferowanym języku i za pomocą preferowanego zestawu narzędzi do kompilacji.
Wygeneruj żądanie. W żądaniu należy przesłać 2 wymagane metadane:
- X-Goog-Api-Key musi być ustawiony na Twój klucz interfejsu API.
X-Goog-Fieldmask musi być ustawiony na listę pól oddzielonych przecinkami, które są wymagane 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 symbolu wieloznacznego, aby przetestować i zrozumieć odpowiedź interfejsu API, ale w kodzie produkcyjnym wyraźnie wymień pola, które chcesz uwzględnić 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 pozostanie stabilne, jeśli określisz potrzebne pola, a później dodasz nowe pola, które wymagają więcej obliczeń.
Wyślij żądanie na adres
routespreferred.googleapis.com:443.Musisz użyć protokołu TLS.
Przykłady użycia metody ComputeRouteMatrix znajdziesz w
artykule Computing a Route Matrix (Beta) Examples (Przykłady obliczania macierzy tras (wersja beta)).
Cechą wyróżniającą 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 jest nieprawidłowe (np. ma zero źródeł). Jeśli jednak błąd dotyczy tylko kilku elementów strumienia (np. ustawienia nieprawidłowego identyfikatora miejsca dla źródła), tylko elementy, których dotyczy błąd, zawierają kody błędów.
Nie ma gwarancji, że elementy zwracane przez strumień będą zwracane w określonej kolejności. Z tego powodu każdy element zawiera origin_index i destination_index. W przypadku źródeł i miejsc docelowych określonych w żądaniu źródło trasy jest równoważne origins[origin_index] dla danego elementu, a miejsce docelowe trasy jest równoważne destinations[destination_index]. Te tablice są indeksowane od zera. Ważne jest, aby przechowywać kolejność list źródeł i miejsc docelowych.
Obliczanie opłat drogowych
Informacje o obliczaniu opłat drogowych znajdziesz w artykule Obliczanie opłat drogowych.
Przykłady obliczania opłat drogowych znajdziesz w artykule Computing a Route Matrix Examples (Przykłady obliczania macierzy tras).