Gdy interfejs Routes API oblicza trasę, jako dane wejściowe przyjmuje punkty pośrednie i parametry konfiguracyjne, które podajesz. Następnie interfejs API zwraca odpowiedź zawierającą domyślną trasę i co najmniej 1 trasę alternatywną.
W zależności od pól, o które prosisz, odpowiedź może zawierać różne typy tras i inne dane:
| Aby uwzględnić to w odpowiedzi | Zobacz tę dokumentację |
|---|---|
| Trasa z najniższym zużyciem paliwa lub energii na podstawie typu silnika pojazdu. | Konfigurowanie tras przyjaznych dla środowiska |
| Maksymalnie 3 trasy alternatywne | Żądanie tras alternatywnych |
| Linia łamana całej trasy, każdego etapu trasy i każdego kroku etapu. | Żądanie linii łamanych trasy |
| Szacowane opłaty drogowe z uwzględnieniem rabatów lub karnetów dostępnych dla kierowcy lub pojazdu. | Obliczanie opłat drogowych |
| Zlokalizowane odpowiedzi według kodów języka i jednostki miary (imperialnej lub metrycznej). | Żądanie zlokalizowanych 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 sekcji Dostępne opcje trasy i w treści żądania.
Korzystając z odpowiedzi, możesz przekazać klientom informacje niezbędne do wybrania odpowiedniej trasy.
Maski pól
Gdy wywołujesz metodę obliczania trasy, musisz określić maskę pól, 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 wyraźnie określisz w masce pól.
Więcej informacji znajdziesz w artykule Wybieranie informacji do zwrócenia.
Wyświetlanie informacji o prawach autorskich
Gdy wyświetlasz wyniki użytkownikom, musisz dodać to oświadczenie o prawach autorskich:
Powered by Google, ©YEAR Google
Na przykład:
Powered by Google, ©2023 Google
Trasy, etapy i kroki
Zanim zapoznasz się z odpowiedzią zwracaną przez interfejs Routes API, musisz zrozumieć, z jakich komponentów składa się trasa:

Odpowiedź może zawierać informacje o każdym z tych komponentów trasy:
Trasa: cała podróż od początkowego punktu pośredniego przez wszystkie punkty pośrednie do punktu docelowego. Trasa składa się z co najmniej 1 etapu.
Etap: ścieżka od jednego punktu pośredniego na trasie do następnego punktu pośredniego na trasie. Każdy etap składa się z co najmniej 1 odrębnego kroku.
Trasa zawiera osobny etap dla ścieżki od każdego punktu pośredniego do następnego. Jeśli na przykład trasa zawiera tylko 1 początkowy punkt pośredni i 1 punkt docelowy, trasa zawiera 1 etap. W przypadku każdego dodatkowego punktu pośredniego dodanego do trasy po punkcie początkowym i docelowym, zwanego punktem pośrednim interfejs API dodaje osobny etap.
Interfejs API nie dodaje etapu dla punktu pośredniego. Na przykład trasa, która zawiera początkowy punkt pośredni, punkt pośredni i punkt docelowy, zawiera tylko 1 etap od punktu początkowego do punktu docelowego, przechodząc przez punkt pośredni. Więcej informacji o punktach pośrednich znajdziesz w artykule Definiowanie punktu pośredniego.
Krok: pojedyncza instrukcja na etapie trasy. Krok to najbardziej podstawowa 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 1 element 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 (początkowej, docelowej lub pośredniej punktu pośredniego), którą określisz jako ciąg 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 geograficzne 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.fallbackInfo– typ FallbackInfo. Jeśli interfejs API nie może obliczyć trasy na podstawie wszystkich właściwości wejściowych, może wrócić do innej metody obliczania. Gdy używany jest tryb rezerwowy, to pole zawiera szczegółowe informacje o odpowiedzi rezerwowej. W przeciwnym razie to pole jest nieustawione.
Odpowiedź ma postać:
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
Interpretowanie tablicy routes
Odpowiedź zawiera tablicę routes, której każdy element jest typu
Route.
Każdy element tablicy reprezentuje całą trasę od miejsca 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 poprosisz o
trasę przyjazną dla środowiska, tablica może zawierać 2 elementy: trasę
domyślną i trasę przyjazną dla środowiska. Możesz też ustawić w żądaniu wartość computeAlternativeRoutes na true, 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 |
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 aktualne warunki drogowe i inne czynniki trasa domyślna i trasa przyjazna dla środowiska mogą być takie same. W takim przypadku tablica routeLabels zawiera obie etykiety: DEFAULT_ROUTE i FUEL_EFFICIENT.
{ "routes": [ { "routeLabels": [ "DEFAULT_ROUTE", "FUEL_EFFICIENT" ], … } ] }
Interpretowanie tablicy legs
Każdy route w odpowiedzi zawiera tablicę legs, której każdy element tablicy legs jest typu RouteLeg.
Każdy etap w tablicy określa ś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 etapie.
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "steps": [ { object (RouteLegStep) } ], "travelAdvisory": { object (RouteLegTravelAdvisory) } }
Interpretowanie tablicy steps
Każdy etap w odpowiedzi zawiera tablicę steps, której każdy element tablicy steps
jest typu
RouteLegStep.
Krok odpowiada pojedynczej instrukcji na etapie. Etap 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" }
Właściwość instructions może zawierać dodatkowe informacje o kroku. Na 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 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ślanie języka instrukcji kroku
Interfejs API zwraca informacje o trasie w języku lokalnym, w razie potrzeby transliterowane na skrypt czytelny dla użytkownika, przy zachowaniu preferowanego języka. 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 listę obsługiwanych języków, dlatego może ona nie być kompletna.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 wpływać na zestaw wyników, które interfejs API wybiera do zwrócenia, oraz na kolejność ich zwracania. Geokoder inaczej interpretuje skróty 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 słowa „ulica” w języku węgierskim.
Interpretowanie tablicy geocodingResults
W przypadku każdej lokalizacji w żądaniu (początkowej, docelowej lub pośredniej
punktu pośredniego), która została określona jako ciąg adresu lub jako kod plus, interfejs
API próbuje znaleźć najbardziej odpowiednią lokalizację z odpowiadającym jej identyfikatorem
miejsca. Każdy element tablicy
geocodingResults
zawiera pole placeID z lokalizacją jako identyfikatorem miejsca oraz pole type określające typ lokalizacji
, np. street_address, premise lub airport.
Tablica geocodingResults zawiera 3 pola:
origin: jeśli został określony jako ciąg adresu lub kod plus, identyfikator miejsca początkowego. W przeciwnym razie to pole jest pomijane w odpowiedzi.destination: jeśli został określony jako ciąg adresu lub kod plus, identyfikator miejsca docelowego. W przeciwnym razie to pole jest pomijane w odpowiedzi.intermediates: tablica zawierająca identyfikator miejsca każdego punktu pośredniego określonego jako ciąg adresu lub kod plus. Jeśli określisz punkt pośredni 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 } ] }
Interpretowanie 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 dostępny 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 pól. Możesz też 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 niemieckiego (de) i jednostki imperialne, otrzymasz wartość distanceMeters równą 49889, 7, ale też 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 zlokalizowanych wartości:
{ "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
ComputeRouteswywnioskuje jednostki lokalizacji i odległości z początkowego punktu pośredniego. W przypadku żądania wyznaczania trasy w Stanach Zjednoczonych interfejs API wywnioskuje języken-USi jednostkiIMPERIAL. - Metoda
ComputeRouteMatrixdomyślnie używa języka „en-US” i jednostek METRYCZNYCH.