Możesz obliczyć odległość i czas trwania trasy dla wielu miejsc początkowych i docelowych, korzystając z metody ComputeRouteMatrix
interfejsu Routes Preferred API. ComputeRouteMatrix
obsługuje zarówno strumieniowe wywołania gRPC, jak i wywołania HTTP REST.
Biorąc pod uwagę listę par miejsc wylotu i celu podróży, ComputeRouteMatrix
oblicza odległość i czas trwania trasy, która rozpoczyna się w miejscu wylotu i kończy w miejscu docelowym. Każdy element strumienia odpowiada
informacjom o pojedynczej trasie.
Metoda ComputeRouteMatrix
ma kilka zalet w porównaniu z usługą macierzy odległości:
- Strumieniowe przesyłanie elementów umożliwia zwrócenie elementów przed obliczeniem całej macierzy, co zmniejsza opóźnienie.
ComputeRouteMatrix
ma szczegółowe opcje obliczania ruchu, co pozwala podjąć decyzję o zmniejszeniu jakości i czasu oczekiwania.- Żądania są uruchamiane z wyższym priorytetem w infrastrukturze Google, co skutkuje większą dostępnością.
- Dla punktów na trasie można określić kierunek (kierunek podróży) oraz informacje o bokach drogi.
- Możesz poprosić o zwrot informacji o opłatach, a także o odległość trasy i szacowany czas dotarcia na miejsce.
Włącz metodę ComputeRouteMatrix
Zanim użyjesz w kodzie metody ComputeRouteMatrix
, musisz ją włączyć. Więcej informacji o włączaniu metod interfejsu Routes Preferred API znajdziesz w wprowadzeniu.
Korzystanie z metody ComputeRouteMatrix
Metoda ComputeRouteMatrix
jest dostępna za pośrednictwem punktu końcowego Preferowane trasy v1.
Bardziej szczegółowe informacje znajdziesz w tej dokumentacji:
Poniżej znajdziesz ogólny opis sposobu wywoływania metody ComputeRouteMatrix
za pomocą gRPC:
Sprawdź 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ą zrobić to automatycznie.
Korzystając z własnego języka i zestawu narzędzi do kompilacji, wygeneruj odpowiedni kod protokołu bufora.
Wygeneruj żądanie. Wraz z żądaniem należy przesłać 2 wymagane elementy metadanych:
- Musisz ustawić X-Goog-Api-Key na klucz interfejsu API.
W polu X-Goog-Fieldmask należy podać rozdzielaną przecinkami listę pól, 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 jest to niezalecane. Użyj symbolu wieloznacznego, aby przetestować i zrozumieć odpowiedź interfejsu API, ale jawnie wymień pola, które chcesz umieścić w masce pól w kodzie produkcyjnym.
Więcej informacji o tworzeniu ciągu maski pól znajdziesz na https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Pamiętaj, że wyłączenie niepotrzebnych pól może skrócić czas oczekiwania, ponieważ te pola mogą wymagać dalszych obliczeń. Jeśli określisz potrzebne pola, czas oczekiwania będzie stabilny, a później dodamy nowe pola, które wymagają więcej obliczeń.
Wyślij żądanie do usługi
routespreferred.googleapis.com:443
.Musisz użyć protokołu TLS.
Przykłady użycia metody ComputeRouteMatrix
znajdziesz w sekcji Obliczanie macierzy tras (beta).
Jedną z charakterystycznych cech metody ComputeRouteMatrix
jest to, że kody błędów mogą być zwracane w przypadku całego strumienia lub poszczególnych elementów. Na przykład połączenie strumienia zwraca błąd, jeśli żądanie ma nieprawidłowy format (np. nie ma żadnych źródeł pochodzenia). Jeśli jednak błąd dotyczy tylko kilku elementów strumienia (np. jest ustawiony nieprawidłowy identyfikator miejsca dla źródła), kody błędów będą zawierać tylko te elementy, których on dotyczy.
Nie gwarantujemy, że elementy zwrócone przez strumień będą zwracane w żadnej kolejności. Z tego względu każdy element zawiera origin_index
i destination_index
. W przypadku punktów początkowych i miejsc docelowych określonych w żądaniu początek trasy jest odpowiednikiem origins[origin_index]
dla danego elementu, a miejsce docelowe trasy jest równoważne z destinations[destination_index]
. Te macierze są typu zero-indeks. Przechowywanie zamówień na liście miejsc wylotu i listy miejsc docelowych jest ważne.
Obliczanie opłat drogowych
Więcej informacji o obliczaniu opłat drogowych znajdziesz w artykule Obliczanie opłat drogowych.
Przykłady obliczania opłat drogowych znajdziesz w sekcji Obliczanie przykładowych macierzy tras.