- Żądanie HTTP
- Treść żądania
- Treść odpowiedzi
- Jakość linii łamanych
- Kodowanie Polyline
- Jednostki
- Plik referencyjny
- Dodatkowe obliczenia
- Trasa
- Etykieta trasy
- RouteLeg
- Linia
- RouteLegStep
- Instrukcje nawigacji
- Skręt
- TrasaLegStepTravelAdvisory
- RouteLegTravelAdvisory
- Widoczny obszar
- GeocodingResults
- GeocodedWaypoint
Zwraca trasę główną wraz z opcjonalnymi trasami alternatywnymi, biorąc pod uwagę zestaw punktów końcowych i pośrednich punktów pośrednich.
UWAGA: ta metoda wymaga określenia maski pola odpowiedzi w danych wejściowych. Maskę pola odpowiedzi możesz przekazać, używając parametru adresu URL $fields
lub fields
albo nagłówka HTTP/gRPC X-Goog-FieldMask
(zobacz dostępne parametry i nagłówki adresów URL). Wartość jest listą rozdzielonych przecinkami ścieżek pól. Zobacz szczegółową dokumentację dotyczącą tworzenia ścieżek pól.
W ten sposób:
- Maska wszystkich dostępnych pól (do ręcznego sprawdzenia):
X-Goog-FieldMask: *
- Maska pola długości, odległości i linii łamanej na poziomie trasy (przykładowa konfiguracja produkcyjna):
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
Google nie zaleca używania maski z symbolem wieloznacznym (*
) ani określania maski pola na najwyższym poziomie (routes
), ponieważ:
- Wybór tylko tych pól, których potrzebujesz, pozwala naszemu serwerowi zapisywać cykle obliczeniowe. Dzięki temu zwracamy wyniki z mniejszym opóźnieniem.
- Wybór tylko tych pól, których potrzebujesz w zadaniu produkcyjnym, zapewnia stabilną wydajność. W przyszłości możemy dodać więcej pól odpowiedzi, które mogą wymagać dodatkowego czasu na obliczenia. Jeśli wybierzesz wszystkie pola lub jeśli wybierzesz wszystkie pola na najwyższym poziomie, wyniki mogą się pogorszyć, ponieważ nowe pola, które dodamy, będą automatycznie uwzględniane w odpowiedzi.
- Wybranie tylko pól, których potrzebujesz, powoduje zmniejszenie rozmiaru odpowiedzi, a tym samym zwiększenie przepustowości sieci.
Żądanie HTTP
POST https://routes.googleapis.com/directions/v2:computeRoutes
Adres URL używa składni transkodowania gRPC.
Treść żądania
Treść żądania zawiera dane o następującej strukturze:
Zapis JSON |
---|
{ "origin": { object ( |
Pola | |
---|---|
origin |
Wymagany. Punkt początkowy punktu. |
destination |
Wymagany. Docelowy punkt na trasie. |
intermediates[] |
Opcjonalnie. Zestaw punktów na trasie (oprócz punktów końcowych), zatrzymujących się lub przejeżdżających obok. Obsługiwane jest maksymalnie 25 pośrednich punktów pośrednich. |
travelMode |
Opcjonalnie. Określa środek transportu. |
routingPreference |
Opcjonalnie. Określa sposób obliczania trasy. Serwer próbuje użyć wybranej trasy do obliczenia trasy. Jeśli ustawienie routingu powoduje błąd lub bardzo długie opóźnienie, zwracany jest błąd. Możesz wybrać tę opcję tylko wtedy, gdy |
polylineQuality |
Opcjonalnie. Określa preferencje jakości linii łamanej. |
polylineEncoding |
Opcjonalnie. Określa preferowane kodowanie linii łamanej. |
departureTime |
Opcjonalnie. Godzina wyjazdu. Jeśli nie ustawisz tej wartości, domyślna wartość to czas przesłania żądania. Jeśli ustawisz tę wartość na czas, który upłynął, żądanie się nie powiedzie. Sygnatura czasowa w formacie „Zulu” UTC3339, z rozdzielczością nanosekundą i maksymalnie 9 cyframi. Przykłady: |
computeAlternativeRoutes |
Opcjonalnie. Określa, czy oprócz trasy mają być obliczane trasy alternatywne. W przypadku żądań ze pośrednimi punktami pośrednimi nie są zwracane żadne trasy alternatywne. |
routeModifiers |
Opcjonalnie. Zestaw warunków, które muszą zostać spełnione, aby wyznaczyć sposób wyznaczania tras. |
languageCode |
Opcjonalnie. Kod języka BCP-47, np. „pl-PL” lub „sr-Latn”. Więcej informacji znajdziesz na stronie http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Listę obsługiwanych języków znajdziesz w sekcji Obsługa języków. Jeśli nie podasz tej wartości, język wyświetlania zostanie ustalony na podstawie lokalizacji żądania trasy. |
regionCode |
Opcjonalnie. Kod regionu podany jako wartość „ccTLD” („domena najwyższego poziomu”) zawierająca 2 znaki. Więcej informacji znajdziesz na stronie https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains |
units |
Opcjonalnie. Określa jednostki miary dla wyświetlanych pól. Obejmuje to pole |
requestedReferenceRoutes[] |
Opcjonalnie. Określa, które trasy referencyjne mają zostać obliczone w ramach żądania oprócz trasy domyślnej. Trasa referencyjna to trasa, której cel obliczania jest inny niż domyślna. Na przykład przy obliczaniu trasy referencyjnej |
extraComputations[] |
Opcjonalnie. Lista dodatkowych obliczeń, których można użyć do zrealizowania żądania. Uwaga: te dodatkowe obliczenia mogą spowodować zwrócenie dodatkowych pól w odpowiedzi. Te dodatkowe pola muszą być również określone w masce pola, które mają zostać zwrócone w odpowiedzi. |
Treść odpowiedzi
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
v2.computeRoutes przekierowuje odpowiedź.
Zapis JSON |
---|
{ "routes": [ { object ( |
Pola | |
---|---|
routes[] |
Zawiera tablicę obliczonych tras (maksymalnie 3), gdy podajesz parametr compute_alternatives_routes, i tylko jedną trasę, jeśli nie jest podana. Jeśli ta tablica zawiera wiele wpisów, pierwsza z nich jest zalecana. Jeśli tablica jest pusta, oznacza to, że nie znaleziono trasy. |
fallbackInfo |
W niektórych przypadkach, gdy serwer nie może obliczyć wyników trasy ze wszystkimi ustawieniami przesyłania, może skorzystać z innego sposobu obliczania. Gdy używasz tego trybu, to pole zawiera szczegółowe informacje o odpowiedzi odpowiedzi zastępczej. W przeciwnym razie to pole nie jest skonfigurowane. |
geocodingResults |
Zawiera informacje o geokodowaniu odpowiedzi dla punktów pośrednich określonych jako adresy. |
Jakość linii łamanych
Zestaw wartości, które określają jakość linii łamanej.
Wartości w polu enum | |
---|---|
POLYLINE_QUALITY_UNSPECIFIED |
Nie określono preferencji dotyczących jakości linii łamanych. Domyślna wartość to OVERVIEW . |
HIGH_QUALITY |
Określa wysokiej jakości linię łamaną, która składa się z większej liczby punktów niż OVERVIEW i ma większy rozmiar odpowiedzi. Używaj tej wartości, gdy potrzebujesz większej precyzji. |
OVERVIEW |
Określa linię łamaną – jest ona złożona z niewielkiej liczby punktów. Użyj tej wartości podczas wyświetlania przeglądu trasy. Użycie tej opcji skraca czas oczekiwania na odpowiedź w porównaniu z opcją HIGH_QUALITY . |
Kodowanie poliline
Określa preferowany typ linii łamanej do zwrócenia.
Wartości w polu enum | |
---|---|
POLYLINE_ENCODING_UNSPECIFIED |
Nie określono ustawienia typu linii łamanej. Domyślna wartość to ENCODED_POLYLINE . |
ENCODED_POLYLINE |
Określa łamaną zakodowaną za pomocą algorytmu kodującego łamaną łamaną. |
GEO_JSON_LINESTRING |
Określa linię łamaną za pomocą formatu GeoJSON LineString |
Jednostki
Zestaw wartości, które określają jednostkę miary używaną na wyświetlaczu.
Wartości w polu enum | |
---|---|
UNITS_UNSPECIFIED |
Nie określono jednostki miary. Domyślna jednostka miary wywnioskowana z żądania. |
METRIC |
Jednostki miary miary. |
IMPERIAL |
Jednostki miary imperialnej (angielskich). |
Trasa referencyjna
Obsługiwana trasa referencyjna w ComputeRoutesRequest.
Wartości w polu enum | |
---|---|
REFERENCE_ROUTE_UNSPECIFIED |
Nieużywany. Żądania, które zawierają tę wartość, nie powiodą się. |
FUEL_EFFICIENT |
Trasa z najniższym spalaniem. Trasy oznaczone tą wartością są zoptymalizowane pod kątem parametrów takich jak zużycie paliwa. |
Dodatkowe obliczenia
Dodatkowe obliczenia do wykonania żądania.
Wartości w polu enum | |
---|---|
EXTRA_COMPUTATION_UNSPECIFIED |
Nieużywany. Żądania, które zawierają tę wartość, nie zostaną zrealizowane. |
TOLLS |
Informacje o opłatach na trasach. |
FUEL_CONSUMPTION |
Szacowane zużycie paliwa na trasach. |
TRAFFIC_ON_POLYLINE |
Linia łamana w przypadku ruchu na trasie. |
Trasa
Zawiera trasę, która składa się z segmentów połączonych ze sobą dróg łączących początkowe, końcowe i pośrednie punkty pośrednie.
Zapis JSON |
---|
{ "routeLabels": [ enum ( |
Pola | |
---|---|
routeLabels[] |
Etykiety dla atrybutu |
legs[] |
Zbiór odnóży (segmentów ścieżek między punktami pośrednimi), z których składa się trasa. Każdy etap odpowiada podróży między 2 obiektami innymi niż |
distanceMeters |
Odległość od trasy w metrach. |
duration |
Czas potrzebny na poruszanie się po trasie. Jeśli ustawisz Czas trwania w sekundach z maksymalnie 9 cyframi poprzedzonymi cyframi |
staticDuration |
Czas podróży po trasie bez uwzględniania warunków na drodze. Czas trwania w sekundach z maksymalnie 9 cyframi poprzedzonymi cyframi |
polyline |
Całkowita linia łamana. Ta łamana będzie linia łamana wszystkich |
description |
Opis trasy. |
warnings[] |
Tablica ostrzeżeń do wyświetlenia podczas wyświetlania trasy. |
viewport |
Ramka ograniczająca linię łamaną. |
travelAdvisory |
Dodatkowe informacje o trasie. |
routeToken |
Bezpieczny w internecie token zakodowany w base64, który może być przekazywany do pakietu SDK SDK.Umożliwia on pakietowi SDK Nawigację, aby umożliwić odtworzenie trasy podczas nawigacji, a także w przypadku zmiany trasy. Klienci powinni traktować ten token jako nieprzejrzysty blob. UWAGA: |
Etykieta trasy
Etykiety dla atrybutu Route
przydatne przy porównywaniu konkretnych właściwości trasy z innymi.
Wartości w polu enum | |
---|---|
ROUTE_LABEL_UNSPECIFIED |
Domyślna – nieużywana. |
DEFAULT_ROUTE |
Domyślna „najlepsza” trasa do obliczenia trasy. |
DEFAULT_ROUTE_ALTERNATE |
Alternatywa dla domyślnej trasy najlepszej. Takie trasy są zwracane, gdy określona jest wartość computeAlternativeRoutes . |
FUEL_EFFICIENT |
Trasa z najniższym spalaniem. Trasy oznaczone tą wartością są zoptymalizowane pod kątem parametrów Eko, takich jak zużycie paliwa. |
Trasa
Koduje segment między punktami pośrednimi innymi niż via
.
Zapis JSON |
---|
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object ( |
Pola | |
---|---|
distanceMeters |
Dystans pokonany w metrach na trasie. |
duration |
Czas potrzebny na pokonanie nogi. Jeśli Czas trwania w sekundach z maksymalnie 9 cyframi poprzedzonymi cyframi |
staticDuration |
Czas podróży przez nogę obliczony bez uwzględniania warunków na drodze. Czas trwania w sekundach z maksymalnie 9 cyframi poprzedzonymi cyframi |
polyline |
Całkowita linia łamana dla tego nogi. Obejmuje to linię łamaną |
startLocation |
Lokalizacja początkowa tego kroku. Może się on różnić od podanego |
endLocation |
Lokalizacja końcowa nogi. Może się on różnić od podanego |
steps[] |
Tablica kroków oznaczających segmenty w tym nodze. Każdy krok przedstawia jedną instrukcję nawigacji. |
travelAdvisory |
Obejmuje dodatkowe informacje, o których użytkownik powinien być poinformowany, takie jak możliwe ograniczenia strefy ruchu itp. |
Linia łamana
Koduje linię łamaną.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy: polyline_type . Określa typ linii łamanej. Wartość domyślna to zakodowana_polyline. polyline_type może mieć tylko jedną z tych wartości: |
|
encodedPolyline |
Kodowanie ciągu łamanego łamanej za pomocą algorytmu kodującego łamaną łamaną |
geoJsonLinestring |
Określa linię łamaną za pomocą formatu GeoJSON LineString |
TrasaLegStep
Kabel zamyka segment RouteLeg
. Krok odnosi się do pojedynczej instrukcji nawigacji. Kroki trasy składają się z schodów.
Zapis JSON |
---|
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object ( |
Pola | |
---|---|
distanceMeters |
Odległość pokonana w tym kroku w metrach. W niektórych przypadkach to pole może nie mieć wartości. |
staticDuration |
Czas podróży przez ten krok bez uwzględniania warunków na drodze. W niektórych przypadkach to pole może nie mieć wartości. Czas trwania w sekundach z maksymalnie 9 cyframi poprzedzonymi cyframi |
polyline |
Linia łamana powiązana z tym krokiem. |
startLocation |
Lokalizacja początkowa tego kroku. |
endLocation |
Lokalizacja końcowa tego kroku. |
navigationInstruction |
Instrukcje nawigacji. |
travelAdvisory |
Obejmuje dodatkowe informacje, o których użytkownik powinien być informowany, na przykład o ograniczeniach w strefie ruchu na nodze. |
Skręt
Zestaw wartości, które określają działanie nawigacyjne w bieżącym kroku (np. obrót w lewo, scalanie, proste itp.).
Wartości w polu enum | |
---|---|
MANEUVER_UNSPECIFIED |
Nieużywany. |
TURN_SLIGHT_LEFT |
Skręć lekko w lewo. |
TURN_SHARP_LEFT |
Skręć ostro w lewo. |
UTURN_LEFT |
Skręć w lewo. |
TURN_LEFT |
Skręć w lewo. |
TURN_SLIGHT_RIGHT |
Skręć lekko w prawo. |
TURN_SHARP_RIGHT |
Skręć ostro w prawo. |
UTURN_RIGHT |
Skręć w prawo. |
TURN_RIGHT |
Skręć w prawo. |
STRAIGHT |
Idź prosto. |
RAMP_LEFT |
Skręć w lewo. |
RAMP_RIGHT |
Wybierz właściwą rampę. |
MERGE |
Scal się z ruchem. |
FORK_LEFT |
Skręć w lewo. |
FORK_RIGHT |
Skręć w prawo. |
FERRY |
Wybierz prom. |
FERRY_TRAIN |
Wsiądź do pociągu prowadzącego na prom. |
ROUNDABOUT_LEFT |
Skręć w lewo na rondzie. |
ROUNDABOUT_RIGHT |
Skręć w prawo na rondzie. |
TrasaLegStepTravelDoradztwo
Obejmuje dodatkowe informacje, o których użytkownik powinien być informowany, na przykład o ograniczeniach w strefie ruchu na nodze.
Zapis JSON |
---|
{
"speedReadingIntervals": [
{
object ( |
Pola | |
---|---|
speedReadingIntervals[] |
UWAGA: to pole nie jest obecnie wypełniane. |
TrasaWakacji
Obejmuje dodatkowe informacje, o których użytkownik powinien być poinformowany, takie jak możliwe ograniczenia strefy ruchu itp.
Zapis JSON |
---|
{ "tollInfo": { object ( |
Pola | |
---|---|
tollInfo |
Obejmuje informacje o opłatach na określonej trasie. To pole jest wypełniane tylko wtedy, gdy przewidujemy, że na RouteLeg są płatne opłaty. Jeśli to pole jest ustawione, ale pole podszacowanej ceny nie zostało wypełnione, spodziewamy się, że droga będzie zawierać opłaty za przejazd, ale nie znamy szacunkowej ceny. Jeśli to pole nie istnieje, przejazd przez RouteLeg nie jest płatny. |
speedReadingIntervals[] |
Przedziały prędkości odczytu ze gęstością ruchu. Ma zastosowanie w przypadku ustawień routingu Przykład:
|
Widoczny obszar
Szerokość i szerokość geograficzna podana jako ukośna na przekątnej low
i high
. Widoczny obszar jest uważany za zamknięty, tzn. zawiera granicę. Granice szerokości geograficznej muszą mieścić się w przedziale od -90 do 90 stopni, a długość geograficzna –180–180 stopni. Różne przypadki:
Jeśli
low
=high
, widoczny obszar składa się z jednego punktu.Jeśli
low.longitude
>high.longitude
, zakres długości geograficznej jest odwrócony (widoczny obszar przekracza 180 stopni).Jeśli
low.longitude
= -180 stopni ihigh.longitude
= 180 stopni, widoczny obszar zawiera wszystkie długości geograficzne.Jeśli
low.longitude
= 180 stopni, ahigh.longitude
- -180 stopni, zakres długości geograficznej jest pusty.Jeśli
low.latitude
>high.latitude
, szerokość geograficzna jest pusta.
Musisz wypełnić pola low
i high
, a reprezentowane pole nie może być puste (zgodnie z definicjami powyżej). Pusty obszar widoczny spowoduje błąd.
Ten widok obejmuje na przykład pełny Nowy Jork:
{ "low": { "width": 40.477398, "length": -74.259087 }, "high": { "width": 40.91618, "length": -73.70018 } }
Zapis JSON |
---|
{ "low": { object ( |
Pola | |
---|---|
low |
Wymagany. Dolny punkt widocznego obszaru. |
high |
Wymagany. Wysoki punkt widocznego obszaru. |
GeoGeoResults
Zawiera GeocodedWaypoints
dla punktów początkowych, docelowych i pośrednich. Wypełniane tylko w przypadku punktów pośrednich adresów.
Zapis JSON |
---|
{ "origin": { object ( |
Pola | |
---|---|
origin |
Geokod punktu początkowego punktu początkowego. |
destination |
Docelowy punkt geograficzny zawierający miejsce docelowe. |
intermediates[] |
Lista pośrednich przekodowanych punktów na trasie, które zawierają pole indeksu odpowiadające pozycji punktu na podstawie zera w kolejności, w której zostały określone w żądaniu. |
Punkt zakodowania GeocodedWaypoint
Szczegóły dotyczące lokalizacji używanych jako punkty pośrednie. Wypełniane tylko w przypadku punktów pośrednich adresów. Zawiera szczegółowe informacje o wynikach geokodowania na potrzeby określenia adresu geograficznego.
Zapis JSON |
---|
{
"geocoderStatus": {
object ( |
Pola | |
---|---|
geocoderStatus |
Wskazuje kod stanu wynikający z geokodowania. |
type[] |
Typy wyników w postaci tagu zero lub więcej. Obsługiwane typy: https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types |
partialMatch |
Wskazuje, że geokoder nie zwrócił ściśle dopasowania do pierwotnego żądania, chociaż mógł dopasować część żądanego adresu. Możesz sprawdzić pierwotne żądanie dotyczące literówek lub niepełny adres. |
placeId |
Identyfikator miejsca dla tego wyniku. |
intermediateWaypointRequestIndex |
Indeks odpowiedniego pośredniego punktu pośredniego w żądaniu. Wypełniane tylko wtedy, gdy odpowiadający punkt pośredni jest pośrednim punktem pośrednim. |