Za pomocą metody ComputeRouteMatrix
interfejsu Routes Preferred API możesz obliczyć odległość i czas trwania trasy dla wielu punktów początkowych i docelowych. ComputeRouteMatrix
obsługuje zarówno strumieniowe wywołania gRPC, jak i wywołania REST HTTP.
Na podstawie listy par punktów początkowych i docelowych funkcja ComputeRouteMatrix
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. Każdy element strumienia odpowiada informacjom o jednej trasie.
Metoda ComputeRouteMatrix
ma kilka zalet w porównaniu z usługą Distance Matrix API:
- Streaming umożliwia zwracanie elementów przed obliczeniem całej macierzy, co zmniejsza opóźnienie.
ComputeRouteMatrix
ma szczegółowe opcje obliczania ruchu, dzięki czemu możesz podejmować decyzje dotyczące kompromisu między jakością a opóźnieniem.- Żądania są przetwarzane w infrastrukturze Google z wyższym priorytetem, co zwiększa dostępność.
- Możesz określić kierunek jazdy i stronę drogi dla punktów pośrednich.
- Możesz poprosić o zwrócenie informacji o opłatach drogowych wraz z długością trasy i szacowanym czasem dotarcia.
Włączanie metody 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 artykule Pierwsze kroki.
Używanie metody ComputeRouteMatrix
Metoda ComputeRouteMatrix
jest dostępna w punkcie końcowym Routes Preferred v1.
Szczegółowe informacje znajdziesz w tych dokumentach:
Poniżej znajdziesz ogólne kroki, które pokazują, jak używać gRPC do wywoływania metody ComputeRouteMatrix
:
Pobierz 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, np. Go, mogą robić to automatycznie.
Wygeneruj odpowiedni kod protobufora w wybranym języku i za pomocą wybranego zestawu narzędzi do kompilacji.
Wygeneruj prośbę. W żądaniu muszą być przesłane 2 wymagane rodzaje metadanych:
- Wartość X-Goog-Api-Key musi być ustawiona na Twój klucz interfejsu API.
X-Goog-Fieldmask musi być ustawiony na listę pól rozdzielonych przecinkami, które chcesz uzyskać 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żywaj symbolu wieloznacznego, aby testować i rozumieć odpowiedź interfejsu API, ale w kodzie produkcyjnym wyraźnie wymieniaj 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 niepotrzebnych pól może skrócić czas oczekiwania, ponieważ pola te mogą wymagać dalszych obliczeń. Opóźnienie pozostanie stabilne, jeśli określisz potrzebne pola, a nowe pola wymagające większej mocy obliczeniowej zostaną dodane później.
Wyślij prośbę na adres
routespreferred.googleapis.com:443
.Musisz użyć protokołu TLS.
Przykłady użycia metody ComputeRouteMatrix
znajdziesz w artykule Przykłady obliczania macierzy tras (wersja beta).
Jedną z cech wyróżniających 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 strumieniowe zwraca błąd, jeśli żądanie ma nieprawidłowy format (np. ma 0 źródeł). Jeśli jednak błąd dotyczy tylko kilku elementów strumienia (np. ustawienia nieprawidłowego identyfikatora miejsca dla źródła), kody błędów będą zawierać tylko elementy, których dotyczy błąd.
Elementy zwracane przez strumień nie muszą być zwracane w określonej kolejności. Dlatego każdy element zawiera origin_index
i destination_index
. W przypadku miejsc wyjazdu i miejsc docelowych określonych w żądaniu miejsce wyjazdu na trasie jest równoważne origins[origin_index]
w przypadku danego elementu, a miejsce docelowe na trasie jest równoważne destinations[destination_index]
. Tablice są indeksowane od zera. Ważne jest, aby przechowywać kolejność list miejsc początkowych i docelowych.
Obliczanie opłat za przejazd
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.