Obliczanie macierzy tras

Możesz obliczyć odległość i czas trwania trasy dla wielu sieci jednocześnie miejsca wylotu i przylotu za pomocą metody ComputeRouteMatrix preferowanego interfejsu Routes Preferred API. ComputeRouteMatrix obsługuje zarówno strumieniowych wywołań gRPC, jak i wywołań HTTP REST.

Dla listy par miejsca wylotu i celu podróży: ComputeRouteMatrix oblicza odległość i czas trwania trasy, zaczynając od każdego punktu początkowego i kończąc na każdym z miejsc docelowych. Każdy element strumienia odpowiada do informacji o pojedynczej trasie.

Metoda ComputeRouteMatrix ma kilka zalet w porównaniu z Usługa macierzy odległości:

  • Strumieniowanie umożliwia zwrócenie elementów przed całą matrycą co pozwoliło zmniejszyć opóźnienie.
  • ComputeRouteMatrix udostępnia szczegółowe opcje obliczania ruchu, co ułatwia podejmowanie decyzji dotyczących kompromisu między jakością a opóźnieniem.
  • w ramach infrastruktury Google żądania są uruchamiane z wyższym priorytetem, co przekłada się na większą dostępność.
  • Możesz określić kierunek (kierunek podróży) i pobocze drogi informacje o punktach pośrednich.
  • Możesz poprosić o zwrot informacji o opłatach, odległość i szacowany czas dotarcia na miejsce.

Włączanie metody ComputeRouteMatrix

Zanim użyjesz w kodzie metody ComputeRouteMatrix, musisz włącz tę funkcję. Więcej informacji o włączaniu interfejsu Preferowany interfejs API tras Więcej informacji można znaleźć w artykule Pierwsze kroki.

Używanie metody ComputeRouteMatrix

Metoda ComputeRouteMatrix jest dostępna w ramach Preferowanych tras v1.

Szczegółowe informacje znajdziesz w tej dokumentacji:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

Poniższe ogólne kroki pokazują, jak używać gRPC do wywoływania metoda ComputeRouteMatrix:

  1. Sprawdź niezbędne protobuffers z repozytorium googleapis:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    Pamiętaj, że niektóre systemy kompilacji, na przykład Go, mogą zrobić to automatycznie.

  2. Korzystając z wybranego języka i zestawu narzędzi, wygeneruj odpowiednie na kod bufora proto.

  3. Wygeneruj prośbę. Należy przesłać 2 wymagane fragmenty metadanych z prośbą:

    • Wartość X-Goog-Api-Key musi być ustawiona na klucz interfejsu API.
    • W polu X-Goog-Fieldmask należy ustawić listę pól rozdzielonych przecinkami. których potrzebujesz w odpowiedzi. Przykład: X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Do oznaczenia wszystkich pól możesz użyć symbolu wieloznacznego (*), ale jest to odradzamy. Użyj symbolu wieloznacznego, aby przetestować i poznać odpowiedź interfejsu API, ale jawnie wymień odpowiednie pola w masce pola. w kodzie produkcyjnym.

      Więcej informacji o tworzeniu ciągu maski pola znajdziesz w sekcji https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Wyłączenie niepotrzebnych pól może zmniejszyć opóźnienia, ponieważ te pola mogą wymagać dodatkowych obliczeń. Czas oczekiwania nie zostanie wydłużony jeśli określisz potrzebne pola i nowe pola, które wymagają więcej obliczeń.

  4. Wyślij prośbę do routespreferred.googleapis.com:443.Na potrzeby protokołu TLS.

Przykłady użycia metody ComputeRouteMatrix znajdziesz tutaj: Obliczanie macierzy tras (beta).

Jedną z cech wyróżniających metody ComputeRouteMatrix jest to, że mogą być zwracane zarówno dla całego strumienia, jak i dla poszczególnych . Na przykład połączenie strumienia zwraca błąd, jeśli żądanie jest nieprawidłowo sformułowany (np. ma zerowe punkty początkowe). Jeśli jednak wystąpi błąd do kilku elementów strumienia (np. przez ustawienie nieprawidłowego identyfikatora miejsca, dla źródła), to tylko elementy, których dotyczy błąd, zawierają kody błędów.

Nie ma gwarancji, że elementy zwrócone przez strumień zostaną zwrócone w dowolnej kolejności. Dlatego każdy element zawiera atrybut origin_index i destination_index. Dla określonych miejsc wylotu i przylotu dla żądania, początek trasy jest równoważne z origins[origin_index] i miejsce docelowe trasy jest równoważne do: destinations[destination_index]. Tablice te mają indeks zerowy. it jest ważna do przechowywania kolejności miejsc na liście wylotu i miejsca docelowego.

Obliczam opłaty za przejazd

Informacje na temat obliczania opłat drogowych znajdziesz w Oblicz opłaty drogowe.

Przykłady obliczania opłat drogowych znajdziesz w Computing a Route Matrix Przykłady (Obliczanie macierzy tras).