Gdy interfejs Routes API oblicza trasę, przyjmuje jako dane wejściowe podane przez Ciebie punkty kontrolne i parametry konfiguracji. Interfejs API zwraca odpowiedź zawierającą domyślną trasę oraz co najmniej 1 alternatywną trasę.
Odpowiedź może zawierać różne typy tras i inne dane w zależności od pól, o które prosisz:
Aby uwzględnić to w odpowiedzi | Zobacz tę dokumentację |
---|---|
Trasa z najniższym spalaniem lub energią na podstawie typu silnika. | Konfigurowanie tras przyjaznych dla środowiska |
Do 3 tras alternatywnych | Wysyłanie zapytań o trasy alternatywne |
Linia łamana dla całej trasy, dla każdego odcinka trasy oraz dla każdego etapu etapu. | Poproś o linie łamane trasy |
Szacowane opłaty za przejazd, uwzględniające wszelkie rabaty na opłaty za przejazd lub karty dostępne dla kierowcy lub pojazdu. | Obliczanie opłat drogowych |
odpowiedzi zlokalizowane według kodów języków i jednostek miary (imperialnych lub metrycznych); | Prośba o zlokalizowane wartości |
Aby sformatować instrukcje nawigacji jako ciąg tekstowy HTML, dodaj HTML_FORMATTED_NAVIGATION_INSTRUCTIONS do extraComputations . |
Dodatkowe obliczenia |
Pełną listę opcji wprowadzania znajdziesz w dostępnych opcjach trasy i w treści żądania.
Korzystając z odpowiedzi, możesz przekazać klientom informacje niezbędne do wyboru trasy, która odpowiada ich potrzebom.
Informacje o maskach pól
Gdy wywołujesz metodę obliczania trasy, musisz określić maskę pola określającą pola, które mają być zwracane w odpowiedzi. Nie ma domyślnej listy zwracanych pól. Jeśli pominiesz tę listę, metody zwrócą błąd.
Przykłady w tym dokumencie pokazują cały obiekt odpowiedzi bez uwzględniania masek pól. W środowisku produkcyjnym odpowiedź będzie zawierać tylko pola, które wyraźnie określisz w masce pola.
Więcej informacji znajdziesz w sekcji Wybieranie informacji do zwrócenia.
Wyświetlanie informacji o prawach autorskich
Wyświetlając wyniki użytkownikom, musisz uwzględnić to oświadczenie o prawach autorskich:
Powered by Google, ©YEAR Google
Na przykład:
Powered by Google, ©2023 Google
Informacje o trasach, nogach i krokach
Zanim zapoznasz się z odpowiedziami zwracanymi przez interfejs Routes API, musisz znać komponenty tworzące trasę:
Odpowiedź może zawierać informacje o każdym z tych elementów trasy:
Trasa: cała podróż od punktu docelowego do punktu początkowego, przez wszystkie punkty pośrednie. Trasa składa się z co najmniej 1 etapu.
Etap: odcinek trasy od jednego punktu drogi do następnego. Każdy odcinek składa się z co najmniej 1 odrębnego etapu.
Trasa zawiera oddzielny odcinek ścieżki od każdego punktu pośredniego do kolejnego. Jeśli np. trasa zawiera jeden punkt początkowy i jeden punkt docelowy, składa się z jednego etapu. W przypadku każdego dodatkowego punktu pośredniego, który dodajesz do trasy po punkcie początkowym i docelowym, nazywanym pośrednim punktem pośrednim, interfejs API dodaje oddzielny etap.
Interfejs API nie dodaje etapu dla pośredniego punktu pośredniego przejazdowego. Na przykład trasa zawierająca punkt kontrolny miejsca wyjazdu, punkt kontrolny pośredni i punkt kontrolny miejsca docelowego zawiera tylko 1 odcinek z miejsca wyjazdu do miejsca docelowego, podczas gdy przechodzi przez punkt kontrolny. Więcej informacji o przekazywanych punktach drogi znajdziesz w artykule Definiowanie przekazywanego punktu drogi.
Krok: pojedyncza instrukcja na odcinku trasy. Krok to najmniejsza jednostka trasy. Może to być na przykład „Skręć w lewo na ulicę Main Street”.
Co zawiera odpowiedź
Obiekt JSON reprezentujący odpowiedź interfejsu API zawiera te właściwości najwyższego poziomu:
routes
, tablica elementów typu Route. Tablicaroutes
zawiera po jednym elemencie dla każdej trasy zwróconej przez interfejs API. Tablica może zawierać maksymalnie 5 elementów: trasę domyślną, trasę ekologiczną i maksymalnie 3 trasa alternatywne.geocodingResults
, tablica elementów typu GeocodingResults. W przypadku każdej lokalizacji w żądaniu (początku, celu lub pośredniego punktu kontrolnego), która została określona jako ciąg znaków adresu lub jako kod plus, interfejs API wykonuje wyszukiwanie identyfikatora miejsca. Każdy element tej tablicy zawiera identyfikator miejsca docelowego odpowiadający lokalizacji. Lokalizacje wskazane w zgłoszeniu jako identyfikator miejsca lub współrzędne szerokości i długości geograficznej nie są uwzględniane. Jeśli wszystkie lokalizacje zostały określone za pomocą identyfikatorów miejsc lub współrzędnych szerokości i długości geograficznej, ta tablica nie jest dostępna.fallbackInfo
typu FallbackInfo. Jeśli interfejs API nie może obliczyć trasy ze wszystkich właściwości wejściowych, może użyć innego sposobu obliczeń. Gdy używany jest tryb awaryjny, to pole zawiera szczegółowe informacje o zastępczej odpowiedzi. W przeciwnym razie to pole jest nieskonfigurowane.
Odpowiedź ma postać:
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
Odczytywanie tablicy routes
Odpowiedź zawiera tablicę routes
, w której każdy element ma typ Route.
Każdy element tablicy reprezentuje całą trasę od punktu początkowego do miejsca docelowego. Interfejs API zawsze zwraca co najmniej 1 trasę, zwaną trasą domyślną.
Możesz poprosić o dodatkowe trasy. Jeśli zażądasz trasy przyjaznej dla środowiska, tablica może zawierać 2 elementy: trasę domyślną i trasę przyjazną dla środowiska. Możesz też ustawić wartość parametru computeAlternativeRoutes
na
true
w prośbie, aby dodać do odpowiedzi maksymalnie 3 alternatywne trasy.
Każda trasa w tablicy jest identyfikowana za pomocą właściwości tablicy routeLabels
:
Wartość | Opis |
---|---|
DEFAULT_ROUTE |
Identyfikuje trasę domyślną. |
FUEL_EFFICIENT |
Określa trasę przyjazną dla środowiska. |
DEFAULT_ROUTE_ALTERNATE |
I wskazuje alternatywną trasę. |
Tablica legs
zawiera definicję każdego etapu trasy. Pozostałe właściwości, takie jak distanceMeters
, duration
i polyline,
, zawierają informacje o całej trasie:
{ "routeLabels": [ enum (RouteLabel) ], "legs": [ { object (RouteLeg) } ], "distanceMeters": integer, "duration": string, "routeLabels": [string], "staticDuration": string, "polyline": { object (Polyline) }, "description": string, "warnings": [ string ], "viewport": { object (Viewport) }, "travelAdvisory": { object (RouteTravelAdvisory) } "routeToken": string }
Ze względu na obecne warunki jazdy i inne czynniki trasa domyślna i przyjazna dla środowiska mogą być takie same. W tym przypadku tablica routeLabels
zawiera obie etykiety: DEFAULT_ROUTE
i FUEL_EFFICIENT
.
{ "routes": [ { "routeLabels": [ "DEFAULT_ROUTE", "FUEL_EFFICIENT" ], … } ] }
Informacje o tablicy odcinków
Każdy element route
w odpowiedzi zawiera tablicę legs
, której każdy element jest typu RouteLeg.
Każdy odcinek w tablicy definiuje ścieżkę od jednego punktu do następnego na trasie. Trasa zawsze zawiera co najmniej 1 etap.
Właściwość legs
zawiera definicję każdego kroku w każdym etapie w tablicy steps
. Pozostałe właściwości, takie jak distanceMeters
, duration
i polyline
, zawierają informacje o etapie.
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "steps": [ { object (RouteLegStep) } ], "travelAdvisory": { object (RouteLegTravelAdvisory) } }
Tablica kroków
Każdy etap odpowiedzi zawiera tablicę steps
, w której każdy element tablicy steps
jest typu RouteLegStep.
Krok odpowiada pojedynczej instrukcji w ramach danej nogi. Noga zawsze zawiera
co najmniej jeden krok.
Każdy element w tablicy steps
zawiera właściwość navigationInstruction
typu NavigationInstruction, która zawiera instrukcję kroku. Na przykład:
"navigationInstruction": { "maneuver": "TURN_LEFT", "instructions": "Turn left toward Frontage Rd" }
instructions
może zawierać dodatkowe informacje o danym kroku. Przykład:
"navigationInstruction": { "maneuver": "TURN_SLIGHT_LEFT", "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days" }
Pozostałe właściwości w tym kroku opisują informacje na jego temat, na przykład distanceMeters
, duration
i polyline
:
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "navigationInstruction": { object (NavigationInstruction) } }
Określ język instrukcji dotyczących kroku
Interfejs API zwraca informacje o trasie w języku lokalnym, transliterację na skrypt, który w razie potrzeby może odczytać użytkownik, z zachowaniem preferowanego języka. Wszystkie elementy adresu są zwracane w tym samym języku.
Użyj parametru
languageCode
w żądaniu, aby wyraźnie ustawić język trasy z listy obsługiwanych języków. Google często aktualizuje listę obsługiwanych języków, więc może ona nie być pełna.Jeśli nazwa nie jest dostępna w podanym języku, interfejs API używa najbliższego dopasowania.
Określony język może wpływać na zestaw wyników zwracanych przez interfejs API oraz kolejność, w jakiej są one zwracane. Geokoder różnie interpretuje skróty w zależności od języka. Dotyczy to np. skrótów typów ulic lub synonimów, które mogą być prawidłowe w jednym języku, a w innym nie. Na przykład „utca” i „tér” to synonimy ulicy w języku węgierskim.
Interpretowanie tablicy geocodingResults
W przypadku każdej lokalizacji w żądaniu (początku, celu lub punktu pośredniego) określonej jako ciąg znaków adresu lub kod Plus Code interfejs API próbuje znaleźć najbardziej odpowiednią lokalizację, która ma odpowiadający identyfikator miejsca. Każdy element tablicy geocodingResults
zawiera pole placeID
zawierające lokalizację w postaci identyfikatora miejsca oraz pole type
określające typ lokalizacji, np. street_address
, premise
lub airport
.
Tablica geocodingResults
zawiera trzy pola:
origin
: jeśli podano go jako ciąg znaków adresu lub kod Plus Code, identyfikator miejsca pochodzenia. W przeciwnym razie to pole jest pomijane w odpowiedzi.destination
: jeśli podano jako ciąg adresu lub kod Plus Code, identyfikator miejsca docelowego. W przeciwnym razie to pole jest pomijane w odpowiedzi.intermediates
: tablica zawierająca identyfikator miejsca dla wszystkich pośrednich punktów kontrolnych określonych jako ciąg znaków adresu lub kod Plus Code. Jeśli określisz pośredni punkt pośredni przy użyciu identyfikatora miejsca lub współrzędnych szerokości i długości geograficznej, zostanie on pominięty w odpowiedzi. Użyj w odpowiedzi właściwościintermediateWaypointRequestIndex
, aby określić, który pośredni punkt pośredni w żądaniu odpowiada identyfikatorowi miejsca w odpowiedzi.
"geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "destination": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string } ] }
Wartości zlokalizowanych odpowiedzi
Zlokalizowane wartości odpowiedzi to dodatkowe pole odpowiedzi, które zawiera zlokalizowany tekst zwracanych wartości parametrów. Tekst jest zlokalizowany w przypadku czasu trwania przejazdu, odległości i jednostek miary (metrycznych lub imperialnych). Wartości zlokalizowane są wysyłane za pomocą maski pola. Możesz określić język i system jednostek lub użyć wartości wywnioskowanych przez interfejs API. Więcej informacji znajdziesz w sekcji LocalizedValues.
Jeśli na przykład określisz kod języka niemiecki (de) i jednostki imperialne, wartość distanceMeters
wyniesie 49889,7, ale otrzymasz też tekst z lokalizacją, który podaje tę odległość w jednostkach niemieckich i imperialnych, czyli „31 mil”.
Oto przykład wartości zlokalizowanych:
{ "localized_values": { "distance": { "text": "31,0 Meile/n" }, "duration": { "text": 38 Minuten}. "static_duration": { "text": 36 Minuten}. } }
Jeśli nie określisz języka ani systemu jednostek, interfejs API wywnioskuje język i jednostki w ten sposób:
- Metoda
ComputeRoutes
określa lokalizację i jednostki odległości od punktu początkowego. Na przykład w przypadku żądania routingu w Stanach Zjednoczonych interfejs API określa języken-US
i jednostkiIMPERIAL
. - Metoda
ComputeRouteMatrix
domyślnie używa języka „en-US” i jednostek metrycznych.