Gdy interfejs Routes API oblicza trasę, jako dane wejściowe przyjmuje podane przez Ciebie punkty pośrednie i parametry konfiguracji. Interfejs API zwraca odpowiedź, która zawiera 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 żądanych pól:
| Aby uwzględnić to w odpowiedzi, | Zobacz tę dokumentację |
|---|---|
| Trasa o największej paliwo- lub energooszczędności w zależności od rodzaju silnika. | Konfigurowanie tras przyjaznych dla środowiska |
| Maksymalnie 3 trasy alternatywne | Prośba o trasy alternatywne |
| linii łamanej całej trasy, każdego jej etapu i każdego kroku na etapie; | Żądanie linii łamanych trasy |
| Szacowane opłaty za przejazd, z uwzględnieniem wszelkich zniżek lub karnetów dostępnych dla kierowcy lub pojazdu. | Obliczanie opłat drogowych |
| Zlokalizowane odpowiedzi 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 wejściowych znajdziesz w sekcjach Dostępne opcje trasy i Treść żądania.
Na podstawie odpowiedzi możesz przekazać klientom informacje niezbędne do wybrania odpowiedniej trasy zgodnie z ich wymaganiami.
Maski pól
Gdy wywołujesz metodę obliczania trasy, musisz określić maskę pola, która definiuje, które pola 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 zostały wyraźnie określone w masce pola.
Więcej informacji znajdziesz w sekcji Wybieranie informacji do zwrócenia.
Informacje o wyświetlaniu praw 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, odcinkach i krokach
Zanim przyjrzysz się odpowiedzi zwracanej przez interfejs Routes API, zapoznaj się z komponentami, z których składa się trasa:

Odpowiedź może zawierać informacje o każdym z tych komponentów trasy:
Trasa: cała podróż od punktu początkowego przez wszystkie punkty pośrednie do punktu docelowego. Trasa składa się z co najmniej 1 etapu.
Odcinek: ścieżka od jednego punktu na trasie do następnego. Każdy odcinek składa się z co najmniej 1 kroku.
Trasa zawiera osobny odcinek dla ścieżki od każdego punktu pośredniego do następnego. Jeśli na przykład trasa zawiera pojedynczy punkt początkowy i pojedynczy punkt docelowy, to zawiera ona jeden odcinek. W przypadku każdego dodatkowego punktu pośredniego, który dodasz do trasy po punkcie początkowym i docelowym, nazywanego punktem pośrednim, interfejs API dodaje osobny etap.
Interfejs API nie dodaje odcinka w przypadku pośredniego punktu orientacyjnego, przez który ma przebiegać trasa. Na przykład trasa, która zawiera punkt pośredni miejsca wyjazdu, punkt pośredni, przez który chcesz przejechać, i punkt pośredni miejsca docelowego, zawiera tylko 1 etap od miejsca wyjazdu do miejsca docelowego, który przebiega przez punkt pośredni. Więcej informacji o punktach pośrednich, przez które chcesz przejechać, znajdziesz w artykule Definiowanie punktu pośredniego, przez który chcesz przejechać.
Krok: pojedyncza instrukcja na odcinku trasy. Krok to najbardziej niepodzielna jednostka trasy. Na przykład krok może wskazywać „Skręć w lewo w ulicę Główną”.
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. Tablicarouteszawiera po 1 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 trasy alternatywne.geocodingResults, tablica elementów typu GeocodingResults. W przypadku każdej lokalizacji w żądaniu (punktu początkowego, miejsca docelowego lub punktu pośredniego) określonej jako ciąg znaków adresu lub kod Plus interfejs API wyszukuje identyfikator miejsca. Każdy element tej tablicy zawiera identyfikator miejsca odpowiadający lokalizacji. Lokalizacje w żądaniu określone 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 geograficznych, ta tablica nie jest podawana.fallbackInfotypu FallbackInfo. Jeśli interfejs API nie może obliczyć trasy na podstawie wszystkich właściwości wejściowych, może użyć innego sposobu obliczania. Gdy używany jest tryb zastępczy, to pole zawiera szczegółowe informacje o odpowiedzi zastępczej. W przeciwnym razie to pole nie jest ustawione.
Odpowiedź ma taką postać:
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
Odszyfrowywanie tablicy tras
Odpowiedź zawiera tablicę routes, w której każdy element jest typu Route.
Każdy element tablicy reprezentuje całą trasę od miejsca wyjazdu do miejsca docelowego. Interfejs API zawsze zwraca co najmniej 1 trasę, która jest nazywana trasą domyślną.
Możesz poprosić o dodatkowe trasy. Jeśli poprosisz o trasę przyjazną dla środowiska, tablica może zawierać 2 elementy: trasę domyślną i trasę przyjazną dla środowiska. Możesz też ustawić computeAlternativeRoutes na true w żądaniu, aby dodać do odpowiedzi maksymalnie 3 trasy alternatywne.
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 |
Identyfikuje trasę przyjazną dla środowiska. |
DEFAULT_ROUTE_ALTERNATE |
Oznacza trasę alternatywną. |
Tablica legs zawiera definicję każdego odcinka 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 aktualne warunki jazdy i inne czynniki trasa domyślna i trasa 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 etapów
Każdy obiekt route w odpowiedzi zawiera tablicę legs, w której każdy element tablicy legs jest typu RouteLeg.
Każdy odcinek w tablicy definiuje ścieżkę od jednego punktu pośredniego do następnego punktu pośredniego na trasie. Trasa zawsze zawiera co najmniej 1 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 odcinku.
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "steps": [ { object (RouteLegStep) } ], "travelAdvisory": { object (RouteLegTravelAdvisory) } }
Omówienie tablicy kroków
Każdy etap w odpowiedzi zawiera tablicę steps, w której każdy element tablicy steps jest typu RouteLegStep.
Krok odpowiada pojedynczej instrukcji na odcinku. Odcinek zawsze zawiera co najmniej 1 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 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 kroku opisują informacje o kroku, takie jak 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 krok po kroku
Interfejs API zwraca informacje o trasie w języku lokalnym, w razie potrzeby transliterowane na pismo czytelne dla użytkownika, z uwzględnieniem preferowanego języka. Wszystkie komponenty adresu są zwracane w tym samym języku.
Użyj parametru
languageCodew żądaniu, aby wyraźnie ustawić język trasy z listy 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 określonym języku, interfejs API używa najbliższego dopasowania.
Określony język może mieć wpływ na zestaw wyników, które interfejs API zdecyduje się zwrócić, oraz na kolejność, w jakiej zostaną zwrócone. Geokoder interpretuje skróty w różny sposób w zależności od języka, np. skróty typów ulic lub synonimy, które mogą być prawidłowe w jednym języku, ale nie w innym. Na przykład utca i tér to synonimy ulicy w języku węgierskim.
Omówienie tablicy geocodingResults
W przypadku każdej lokalizacji w żądaniu (miejsce rozpoczęcia, miejsce docelowe lub punkt pośredni), która została określona jako ciąg znaków adresu lub kod Plus Code, interfejs API próbuje znaleźć najbardziej odpowiednią lokalizację, która ma odpowiadający jej identyfikator miejsca. Każdy element tablicy geocodingResults zawiera pole placeID z lokalizacją w postaci identyfikatora miejsca oraz pole type określające typ lokalizacji, np. street_address, premise lub airport.
Tablica geocodingResults zawiera 3 pola:
origin: identyfikator miejsca pochodzenia, jeśli został podany jako ciąg znaków adresu lub kod Plus Code. W przeciwnym razie to pole zostanie pominięte w odpowiedzi.destination: identyfikator miejsca docelowego, jeśli został podany jako ciąg znaków adresu lub kod Plus Code. W przeciwnym razie to pole zostanie pominięte w odpowiedzi.intermediates: tablica zawierająca identyfikator miejsca dowolnego pośredniego punktu orientacyjnego określonego jako ciąg znaków adresu lub jako Plus Code. Jeśli określisz pośredni punkt orientacyjny za pomocą identyfikatora miejsca lub współrzędnych geograficznych, zostanie on pominięty w odpowiedzi. Użyj właściwościintermediateWaypointRequestIndexw odpowiedzi, aby określić, który 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 } ] }
Omówienie zlokalizowanych wartości odpowiedzi
Zlokalizowane wartości odpowiedzi to dodatkowe pole odpowiedzi, które zawiera zlokalizowany tekst dla zwracanych wartości parametrów. Zlokalizowany tekst jest podawany w przypadku czasu trwania podróży, odległości i systemu jednostek (metrycznego lub imperialnego). Możesz poprosić o zlokalizowane wartości za pomocą maski pola i określić język oraz system jednostek lub użyć wartości wywnioskowanych przez interfejs API. Więcej informacji znajdziesz w artykule LocalizedValues.
Jeśli na przykład określisz kod języka niemieckiego (de) i jednostki imperialne, otrzymasz wartość distanceMeters równą 49889, 7, ale także zlokalizowany tekst podający tę odległość w języku niemieckim i jednostkach imperialnych, czyli „31 Meile”.
Oto przykład tego, co zobaczysz w przypadku 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 określi język i jednostki w następujący sposób:
- Metoda
ComputeRoutesokreśla lokalizację i jednostki odległości na podstawie punktu początkowego. W przypadku żądania wyznaczenia trasy w Stanach Zjednoczonych interfejs API przyjmuje języken-USi jednostkiIMPERIAL. - Metoda
ComputeRouteMatrixdomyślnie używa języka „en-US” i jednostek METRYCZNYCH.