Możesz obliczyć odległość i czas trwania trasy dla wielu źródeł i miejsc docelowych, korzystając z metody ComputeRouteMatrix
w interfejsie 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ę od każdego miejsca 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 zwrot elementów przed obliczeniem całej macierzy, co zmniejsza opóźnienie.
ComputeRouteMatrix
udostępnia szczegółowe opcje obliczania ruchu, co pozwala wybrać odpowiednią jakość i czas oczekiwania.- Żądania są uruchamiane z wyższym priorytetem w infrastrukturze Google, co prowadzi do większej dostępności.
- Dla punktów na trasie można określić kierunek (kierunek podróży) i informacje o poboczu.
- Możesz poprosić o zwrot informacji o opłatach, a także odległość trasy i szacowany czas dotarcia.
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.
Więcej szczegółowych informacji znajdziesz w dokumentacji:
Poniżej znajdziesz ogólne instrukcje dotyczące wywoływania metody ComputeRouteMatrix
za pomocą gRPC:
Sprawdź niezbędne bufory protokołu 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.
Używając preferowanego języka i zestawu narzędzi do tworzenia, wygeneruj odpowiedni kod protokołu bufora.
Wygeneruj prośbę. Wraz z prośbą należy przesłać 2 wymagane elementy metadanych:
- W polu X-Goog-Api-Key musisz ustawić klucz interfejsu API.
W polu X-Goog-Fieldmask musisz podać oddzieloną przecinkami listę pól, których potrzebujesz w odpowiedzi. Na przykład X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Możesz użyć symbolu wieloznacznego (*) do oznaczenia wszystkich pól, ale nie jest to zalecane. Użyj symbolu wieloznacznego, aby przetestować i zrozumieć odpowiedź interfejsu API, ale jawnie podaj 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ż pola te mogą wymagać dalszych obliczeń. Jeśli określisz potrzebne pola, czas oczekiwania pozostanie stabilny, a później dodamy nowe pola, które wymagają więcej obliczeń.
Wyślij żądanie do
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 dla 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ł). Jeśli jednak błąd dotyczy tylko kilku elementów strumienia (np. ustawienie nieprawidłowego identyfikatora miejsca w przypadku źródła), kody błędów zawierają tylko elementy, w których on występuje.
Nie ma gwarancji, że elementy zwracane przez strumień zostaną zwrócone w żadnej kolejności. Z tego względu każdy element zawiera atrybuty origin_index
i destination_index
. W przypadku miejsc 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]
. Tablice mają wartość zerową. Przechowywanie zamówień na listach miejsc wylotu i docelowych jest ważne.
Obliczam opłaty drogowe
Więcej informacji o obliczaniu opłat drogowych znajdziesz w artykule Obliczanie opłat drogowych.
Przykłady obliczania opłat drogowych znajdziesz w tym artykule.