Gdy interfejs Routes API oblicza trasę, jako dane wejściowe wykorzystuje podane przez Ciebie punkty pośrednie i parametry konfiguracji. Interfejs API zwraca wtedy odpowiedź zawierającą trasę domyślną i co najmniej 1 trasę alternatywną.
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 | Wyświetl 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. | Prośba o linie łamane trasy |
Szacowane opłaty drogowe z uwzględnieniem wszelkich rabatów oraz winiety dostępnych dla kierowcy lub pojazdu. | Obliczanie opłat drogowych |
Zlokalizowane odpowiedzi według kodów języka i jednostki miary (imperialnej lub metrycznej). | 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 zwróconych 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
Podczas wyświetlania wyników użytkownikom musisz dołączyć 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 początkowego przez wszystkie punkty pośrednie do docelowego. Trasa składa się z co najmniej jednego etapu.
Noga: ścieżka z jednego punktu pośredniego na trasie do kolejnego punktu na trasie. Każda noga składa się z co najmniej 1 oddzielnego kroku.
Trasa zawiera oddzielny odcinek ścieżki od każdego punktu pośredniego do kolejnego. Jeśli na przykład trasa obejmuje jeden punkt początkowy i jeden docelowy punkt pośredni, trasa 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 obejmująca początkowy punkt pośredni, pośredni punkt pośredni i docelowy punkt na trasie obejmuje tylko jeden etap trasy biegnący od punktu początkowego do miejsca docelowego. Więcej informacji o punktach pośrednich znajdziesz w artykule Definiowanie pośredniego punktu pośredniego.
Krok: pojedyncza instrukcja na danym etapie trasy. Krok to najbardziej atomowa jednostka trasy. np. „Skręć w lewo na głównej ulicy”.
Treść odpowiedzi
Obiekt JSON reprezentujący odpowiedź interfejsu API ma 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ę przyjazną dla środowiska i maksymalnie 3 alternatywne trasy.geocodingResults
, tablica elementów typu GeocodingResults. Dla każdej lokalizacji w żądaniu (źródło, miejsce docelowe lub pośredni punkt pośredni) określonej jako ciąg adresu lub kod plus interfejs API wyszukuje identyfikator miejsca. Każdy element tej tablicy zawiera identyfikator miejsca 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 w zastępstwie użyć innego sposobu obliczeń. W przypadku używania trybu kreacji zastępczej pole zawiera szczegółowe informacje o odpowiedzi kreacji zastępczej. W przeciwnym razie to pole jest nieskonfigurowane.
Odpowiedź ma taki format:
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
Odszyfruj tablicę tras
Odpowiedź zawiera tablicę routes
, z której każdy element tablicy jest typu Route.
Każdy element tablicy reprezentuje całą trasę od punktu początkowego do miejsca docelowego. Interfejs API zawsze zwraca co najmniej jedną trasę, tzw. trasę domyślną.
Możesz poprosić o dodatkowe trasy. Jeśli wybierzesz trasę przyjazną dla środowiska, tablica może zawierać 2 elementy: trasę domyślną i trasę przyjazną dla środowiska. Możesz też ustawić w żądaniu computeAlternativeRoutes
wartość true
, 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 |
Określa trasę domyślną. |
FUEL_EFFICIENT |
Określa trasę przyjazną dla środowiska. |
DEFAULT_ROUTE_ALTERNATE |
Wskazuje trasę alternatywną. |
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 ekologiczna mogą być takie same. W tym przypadku tablica routeLabels
zawiera obie etykiety: DEFAULT_ROUTE
i FUEL_EFFICIENT
.
{ "routes": [ { "routeLabels": [ "DEFAULT_ROUTE", "FUEL_EFFICIENT" ], … } ] }
Zapoznanie z tablicą nóg
Każdy element route
w odpowiedzi zawiera tablicę legs
, gdzie każdy element tablicy legs
jest typu RouteLeg.
Każdy etap w tablicy określa ścieżkę z jednego punktu do następnego punktu na trasie. Trasa zawsze obejmuje co najmniej jeden etap.
Właściwość legs
zawiera definicję każdego kroku na 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 jednej instrukcji na każdym etapie. Noga zawsze zawiera
co najmniej jeden krok.
Każdy element 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. Komponenty adresu są zwracane w tym samym języku.
Użyj parametru
languageCode
w żądaniu, aby wyraźnie ustawić język trasy na liście obsługiwanych języków. Google często aktualizuje obsługiwane języki, więc ta lista może nie być wyczerpująca.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.
Opis tablicy geocodingResults
W przypadku każdej lokalizacji w żądaniu (źródło, miejsce docelowe lub pośredni punkt pośredni), która została określona jako ciąg adresu lub kod plus, interfejs API próbuje znaleźć najtrafniejszą lokalizację, która ma odpowiedni identyfikator miejsca. Każdy element tablicy geocodingResults
zawiera pole placeID
zawierające lokalizację jako identyfikator miejsca oraz pole type
, które określa typ lokalizacji, np. street_address
, premise
lub airport
.
Tablica geocodingResults
zawiera trzy pola:
origin
: jeśli został podany jako ciąg adresu lub kod Plus, identyfikator miejsca punktu początkowego. 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 pośrednich punktów pośrednich określonych w postaci ciągu adresu lub kodu Plus. 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. Dla czasu trwania podróży, odległości i systemu jednostek (metrycznych lub imperialnych) podawany jest tekst zlokalizowany. Za pomocą maski pola zgłaszasz zlokalizowane wartości. Możesz określić język i system jednostek lub użyć wartości uzyskanych przez interfejs API. Szczegółowe informacje znajdziesz w sekcji LocalizedValues.
Jeśli np.określisz kod języka dla jednostek niemieckich (de) i imperialnych, otrzymasz wartość distanceMeters
równą 49889, 7, ale zlokalizowany tekst będzie też zawierać informację o odległości w jednostkach niemieckich i imperialnych, czyli „31 Meile”.
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 lub systemu jednostek, interfejs API ustali 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 ustawia język „en-US” i jednostki METRIC.