- Żądanie HTTP
- Treść żądania
- Treść odpowiedzi
- PolylineQuality
- PolylineEncoding
- ReferenceRoute
- ExtraComputation
- Trasa
- RouteLabel
- RouteLeg
- Polilinia
- RouteLegStep
- NavigationInstruction
- Maneuver
- RouteLegStepTravelAdvisory
- RouteLegStepLocalizedValues
- RouteLegStepTransitDetails
- TransitStopDetails
- TransitStop
- TransitDetailsLocalizedValues
- LocalizedTime
- TransitLine
- TransitAgency
- TransitVehicle
- TransitVehicleType
- RouteLegTravelAdvisory
- RouteLegLocalizedValues
- StepsOverview
- MultiModalSegment
- Viewport
- RouteLocalizedValues
- PolylineDetails
- FlyoverInfo
- RoadFeatureState
- PolylinePointIndex
- NarrowRoadInfo
- GeocodingResults
- GeocodedWaypoint
Zwraca trasę główną wraz z opcjonalnymi trasami alternatywnymi na podstawie zestawu punktów pośrednich i końcowych.
UWAGA: ta metoda wymaga podania w danych wejściowych maski pola odpowiedzi. Maskę pola odpowiedzi możesz podać za pomocą parametru adresu URL $fields
lub fields
albo za pomocą nagłówka HTTP/gRPC X-Goog-FieldMask
(zobacz dostępne parametry adresu URL i nagłówki). Wartość to lista ścieżek do pól rozdzielona przecinkami. Szczegółową dokumentację tworzenia ścieżek pól znajdziesz tutaj.
Na przykład w tej metodzie:
- Maska pola wszystkich dostępnych pól (do ręcznego sprawdzenia):
X-Goog-FieldMask: *
- Maska pola czasu trwania, odległości i linii łamanej na poziomie trasy (przykład konfiguracji produkcyjnej):
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
Google odradza używanie maski pola odpowiedzi z symbolem wieloznacznym (*
) lub określanie maski pola na najwyższym poziomie (routes
), ponieważ:
- Wybieranie tylko potrzebnych pól pomaga naszemu serwerowi oszczędzać cykle obliczeniowe, dzięki czemu możemy zwracać wyniki z mniejszym opóźnieniem.
- Wybieranie tylko tych pól, które są potrzebne w zadaniu produkcyjnym, zapewnia stabilną wydajność w zakresie opóźnień. W przyszłości możemy dodać więcej pól odpowiedzi, a nowe pola mogą wymagać dodatkowego czasu obliczeniowego. Jeśli wybierzesz wszystkie pola lub wszystkie pola na najwyższym poziomie, może to spowodować spadek wydajności, ponieważ każde nowe pole, które dodamy, będzie automatycznie uwzględniane w odpowiedzi.
- Wybieranie tylko potrzebnych pól skutkuje mniejszym rozmiarem odpowiedzi, a tym samym większą 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. |
destination |
Wymagany. Punkt docelowy. |
intermediates[] |
Opcjonalnie. Zestaw punktów pośrednich na trasie (z wyłączeniem punktów końcowych), w których można się zatrzymać lub które można ominąć. Obsługiwanych jest maksymalnie 25 pośrednich punktów na trasie. |
travelMode |
Opcjonalnie. Określa środek transportu. |
routingPreference |
Opcjonalnie. Określa sposób obliczania trasy. Serwer próbuje obliczyć trasę przy użyciu wybranego ustawienia routingu. Jeśli preferencje routingu spowodują błąd lub bardzo długie opóźnienie, zwracany jest błąd. Tę opcję możesz określić tylko wtedy, gdy |
polylineQuality |
Opcjonalnie. Określa preferencje dotyczące jakości polilinii. |
polylineEncoding |
Opcjonalnie. Określa preferowane kodowanie polilinii. |
departureTime |
Opcjonalnie. Godzina odjazdu. Jeśli nie ustawisz tej wartości, domyślnie będzie to czas wysłania żądania. UWAGA: datę Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
arrivalTime |
Opcjonalnie. Godzina przyjazdu. UWAGA: to pole jest ignorowane, gdy w prośbach określono wartość Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
computeAlternativeRoutes |
Opcjonalnie. Określa, czy oprócz trasy mają być obliczane trasy alternatywne. W przypadku żądań z pośrednimi punktami trasy nie są zwracane żadne alternatywne trasy. |
routeModifiers |
Opcjonalnie. Zestaw warunków, które wpływają na sposób obliczania tras. |
languageCode |
Opcjonalnie. Kod języka w formacie BCP-47, np. „en-US” lub „sr-Latn”. Więcej informacji znajdziesz w artykule Identyfikator ustawień regionalnych Unicode. 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 wywnioskowany na podstawie lokalizacji żądania trasy. |
regionCode |
Opcjonalnie. Kod regionu określony jako dwuznakowa wartość ccTLD („domena najwyższego poziomu”). Więcej informacji znajdziesz w artykule Domeny krajowe najwyższego poziomu. |
units |
Opcjonalnie. Określa jednostki miary dla pól wyświetlania. Pola te obejmują pole |
optimizeWaypointOrder |
Opcjonalnie. Jeśli ta opcja ma wartość „true”, usługa próbuje zminimalizować ogólny koszt trasy, zmieniając kolejność określonych pośrednich punktów na trasie. Żądanie nie powiedzie się, jeśli którykolwiek z pośrednich punktów trasy jest punktem trasy |
requestedReferenceRoutes[] |
Opcjonalnie. Określa, które trasy referencyjne mają być obliczane w ramach żądania oprócz trasy domyślnej. Trasa referencyjna to trasa o innym celu obliczania niż trasa domyślna. Na przykład |
extraComputations[] |
Opcjonalnie. Lista dodatkowych obliczeń, które mogą być użyte do zrealizowania żądania. Uwaga: te dodatkowe obliczenia mogą zwracać dodatkowe pola w odpowiedzi. Te dodatkowe pola muszą być też określone w masce pola, aby były zwracane w odpowiedzi. |
trafficModel |
Opcjonalnie. Określa założenia, które mają być używane podczas obliczania czasu w ruchu. To ustawienie wpływa na wartość zwracaną w polu czasu trwania w elementach |
transitPreferences |
Opcjonalnie. Określa preferencje, które wpływają na trasę zwracaną w przypadku |
Treść odpowiedzi
v2.computeRoutes w wiadomości z odpowiedzią.
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
Zapis JSON |
---|
{ "routes": [ { object ( |
Pola | |
---|---|
routes[] |
Zawiera tablicę obliczonych tras (maksymalnie 3), jeśli określisz |
fallbackInfo |
W niektórych przypadkach, gdy serwer nie jest w stanie obliczyć wyników trasy przy użyciu wszystkich preferencji wejściowych, może zastosować inny sposób obliczania. Gdy używany jest tryb rezerwowy, to pole zawiera szczegółowe informacje o odpowiedzi rezerwowej. W przeciwnym razie to pole nie jest ustawione. |
geocodingResults |
Zawiera informacje o odpowiedzi geokodowania dla punktów pośrednich określonych jako adresy. |
PolylineQuality
Zbiór wartości określających jakość polilinii.
Wartości w polu enum | |
---|---|
POLYLINE_QUALITY_UNSPECIFIED |
Nie określono preferencji dotyczących jakości polilinii. Domyślna wartość to OVERVIEW . |
HIGH_QUALITY |
Określa polilinię wysokiej jakości, która składa się z większej liczby punktów niż OVERVIEW , co zwiększa rozmiar odpowiedzi. Użyj tej wartości, gdy potrzebujesz większej precyzji. |
OVERVIEW |
Określa linię łamaną podsumowania, która składa się z niewielkiej liczby punktów. Używaj tej wartości podczas wyświetlania podsumowania trasy. Korzystanie z tej opcji wiąże się z krótszym czasem oczekiwania na żądanie niż w przypadku opcji HIGH_QUALITY . |
PolylineEncoding
Określa preferowany typ linii łamanej, który ma zostać zwrócony.
Wartości w polu enum | |
---|---|
POLYLINE_ENCODING_UNSPECIFIED |
Nie określono preferencji dotyczących typu polilinii. Domyślna wartość to ENCODED_POLYLINE . |
ENCODED_POLYLINE |
Określa linię łamaną zakodowaną za pomocą algorytmu kodowania linii łamanych. |
GEO_JSON_LINESTRING |
Określa polilinię za pomocą formatu GeoJSON LineString. |
ReferenceRoute
Obsługiwana trasa referencyjna w obiekcie ComputeRoutesRequest.
Wartości w polu enum | |
---|---|
REFERENCE_ROUTE_UNSPECIFIED |
Nie używane. Żądania zawierające tę wartość kończą się niepowodzeniem. |
FUEL_EFFICIENT |
Trasa z najniższym spalaniem. |
SHORTER_DISTANCE |
Trasa o krótszym dystansie. To funkcja eksperymentalna. W przypadku W przypadku żądań Ta funkcja nie jest zgodna z innymi środkami transportu, punktami pośrednimi ani |
ExtraComputation
Dodatkowe obliczenia do wykonania podczas realizacji żądania.
Wartości w polu enum | |
---|---|
EXTRA_COMPUTATION_UNSPECIFIED |
Nie używane. Żądania zawierające tę wartość nie zostaną zrealizowane. |
TOLLS |
Informacje o opłatach za przejazd na trasie. |
FUEL_CONSUMPTION |
Szacowane zużycie paliwa na trasie. |
TRAFFIC_ON_POLYLINE |
Linie łamane uwzględniające natężenie ruchu na trasach. |
HTML_FORMATTED_NAVIGATION_INSTRUCTIONS |
NavigationInstructions w postaci sformatowanego ciągu tekstowego HTML. Te treści mają być odczytywane w takiej formie, w jakiej są wyświetlane. Nie analizuj go programowo. |
FLYOVER_INFO_ON_POLYLINE |
Informacje o przelocie nad trasą. Aby zwrócić te informacje, musisz określić routes.polyline_details.flyover_info fieldmask. Obecnie te dane są wypełniane tylko w przypadku niektórych obszarów metropolitalnych w Indiach. Ta funkcja jest eksperymentalna, a kod SKU lub opłata mogą ulec zmianie. |
NARROW_ROAD_INFO_ON_POLYLINE |
Informacje o wąskich drogach na trasie. Aby zwrócić te informacje, musisz określić routes.polyline_details.narrow_road_info fieldmask. Obecnie te dane są wypełniane tylko w przypadku niektórych obszarów metropolitalnych w Indiach. Ta funkcja jest eksperymentalna, a kod SKU lub opłata mogą ulec zmianie. |
Trasa
Zawiera trasę, która składa się z połączonych odcinków dróg łączących początkowy, końcowy i pośrednie punkty trasy.
Zapis JSON |
---|
{ "routeLabels": [ enum ( |
Pola | |
---|---|
routeLabels[] |
Etykiety dla |
legs[] |
Zbiór odcinków (segmentów ścieżki między punktami pośrednimi), które składają się na trasę. Każdy etap odpowiada podróży między 2 miejscami, które nie są |
distanceMeters |
Odległość do pokonania na trasie w metrach. |
duration |
czas potrzebny na pokonanie trasy. Jeśli ustawisz wartość Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „ |
staticDuration |
Czas podróży na trasie bez uwzględnienia warunków drogowych. Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „ |
polyline |
Ogólna linia łamana trasy. Ta linia łamana jest połączoną linią łamaną wszystkich |
description |
Opis trasy. |
warnings[] |
Tablica ostrzeżeń, które mają się wyświetlać podczas wyświetlania trasy. |
viewport |
Ramka ograniczająca widoczny obszar linii łamanej. |
travelAdvisory |
Dodatkowe informacje o trasie. |
optimizedIntermediateWaypointIndex[] |
Jeśli ustawisz wartość |
localizedValues |
Tekstowe reprezentacje właściwości |
routeToken |
Nieprzezroczysty token, który można przekazać do Navigation SDK, aby odtworzyć trasę podczas nawigacji i w przypadku zmiany trasy uwzględnić pierwotny zamiar, gdy trasa została utworzona. Traktuj ten token jako nieprzejrzystą strukturę danych. Nie porównuj jego wartości w różnych żądaniach, ponieważ może się ona zmieniać, nawet jeśli usługa zwraca dokładnie tę samą trasę. UWAGA: usługa |
polylineDetails |
Zawiera informacje o szczegółach wzdłuż polilinii. |
RouteLabel
Etykiety dla
, które pomagają identyfikować określone właściwości trasy, aby porównać je z innymi.Route
Wartości w polu enum | |
---|---|
ROUTE_LABEL_UNSPECIFIED |
Domyślne – nieużywane. |
DEFAULT_ROUTE |
Domyślna „najlepsza” trasa zwracana w wyniku obliczeń. |
DEFAULT_ROUTE_ALTERNATE |
Alternatywa dla domyślnej „najlepszej” trasy. Trasy takie jak ta będą zwracane, gdy podany jest parametr . |
FUEL_EFFICIENT |
Trasa z najniższym spalaniem. Trasy oznaczone tą wartością są zoptymalizowane pod kątem parametrów ekologicznych, takich jak zużycie paliwa. |
SHORTER_DISTANCE |
trasa o krótszym dystansie do pokonania. To funkcja eksperymentalna. |
RouteLeg
Zawiera segment między punktami pośrednimi innymi niż via
.
Zapis JSON |
---|
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object ( |
Pola | |
---|---|
distanceMeters |
Odległość do pokonania na danym odcinku trasy w metrach. |
duration |
Czas potrzebny na pokonanie odcinka. Jeśli wartość Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „ |
staticDuration |
Czas trwania podróży na danym odcinku, obliczony bez uwzględnienia warunków drogowych. Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „ |
polyline |
Ogólna linia łamana dla tego etapu, która obejmuje linię łamaną każdego . |
startLocation |
Lokalizacja początkowa tego odcinka. Ta lokalizacja może się różnić od podanej wartości |
endLocation |
Lokalizacja końcowa tego odcinka. Ta lokalizacja może się różnić od podanej wartości |
steps[] |
Tablica kroków oznaczających segmenty w tym etapie. Każdy krok to jedna instrukcja nawigacyjna. |
travelAdvisory |
Zawiera dodatkowe informacje, o których użytkownik powinien wiedzieć, np. o możliwych ograniczeniach strefy ruchu na odcinku trasy. |
localizedValues |
Tekstowe reprezentacje właściwości |
stepsOverview |
Informacje ogólne o krokach w tym |
Linia łamana
Zawiera zakodowaną linię łamaną.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole unii polyline_type . Zawiera typ linii łamanej. Domyślna wartość to encoded_polyline. polyline_type może mieć tylko jedną z tych wartości: |
|
encodedPolyline |
Ciąg znaków reprezentujący linię łamaną zakodowaną za pomocą algorytmu kodowania linii łamanych. |
geoJsonLinestring |
Określa polilinię za pomocą formatu GeoJSON LineString. |
RouteLegStep
Zawiera segment
. Krok odpowiada pojedynczej instrukcji nawigacyjnej. Odcinki trasy składają się z etapów.RouteLeg
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 trwania podróży na tym etapie bez uwzględnienia warunków drogowych. W niektórych przypadkach to pole może nie mieć wartości. Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „ |
polyline |
Linia łamana powiązana z tym krokiem. |
startLocation |
Lokalizacja początkowa tego kroku. |
endLocation |
Lokalizacja końcowa tego kroku. |
navigationInstruction |
instrukcje nawigacji, |
travelAdvisory |
Zawiera dodatkowe informacje, o których użytkownik powinien być poinformowany, np. o możliwych ograniczeniach strefy ruchu na danym etapie podróży. |
localizedValues |
Tekstowe reprezentacje właściwości |
transitDetails |
Szczegóły dotyczące tego kroku, jeśli tryb podróży to |
travelMode |
Tryb podróży użyty w tym kroku. |
Maneuver
Zestaw wartości określających działanie nawigacyjne, które należy wykonać na bieżącym etapie (np. skręć w lewo, wjedź na drogę lub jedź prosto).
Wartości w polu enum | |
---|---|
MANEUVER_UNSPECIFIED |
Nie używane. |
TURN_SLIGHT_LEFT |
Skręć lekko w lewo. |
TURN_SHARP_LEFT |
Skręć ostro w lewo. |
UTURN_LEFT |
Zawróć w lewo. |
TURN_LEFT |
Skręć w lewo. |
TURN_SLIGHT_RIGHT |
Skręć lekko w prawo. |
TURN_SHARP_RIGHT |
Skręć ostro w prawo. |
UTURN_RIGHT |
Zawróć w prawo. |
TURN_RIGHT |
Skręć w prawo. |
STRAIGHT |
Jedź prosto. |
RAMP_LEFT |
Skieruj się na wjazd po lewej stronie. |
RAMP_RIGHT |
Skieruj się na zjazd po prawej stronie. |
MERGE |
Włącz się do ruchu. |
FORK_LEFT |
Skręć w lewo. |
FORK_RIGHT |
Skręć w prawo. |
FERRY |
Popłyń promem. |
FERRY_TRAIN |
Wsiądź do pociągu, który wjeżdża na prom. |
ROUNDABOUT_LEFT |
Na rondzie skręć w lewo. |
ROUNDABOUT_RIGHT |
Na rondzie skręć w prawo. |
DEPART |
Początkowy manewr. |
NAME_CHANGE |
Służy do wskazywania zmiany nazwy ulicy. |
RouteLegStepTravelAdvisory
Zawiera dodatkowe informacje, o których użytkownik powinien wiedzieć, np. o możliwych ograniczeniach strefy ruchu na danym etapie podróży.
Zapis JSON |
---|
{
"speedReadingIntervals": [
{
object ( |
Pola | |
---|---|
speedReadingIntervals[] |
UWAGA: to pole nie jest obecnie wypełnione. |
RouteLegStepLocalizedValues
Tekstowe reprezentacje niektórych usług.
Zapis JSON |
---|
{ "distance": { object ( |
Pola | |
---|---|
distance |
Długość trasy w formie tekstowej. |
staticDuration |
Czas trwania bez uwzględnienia warunków na drogach, przedstawiony w formie tekstowej. |
RouteLegStepTransitDetails
Dodatkowe informacje dla RouteLegStep
dotyczące tras TRANSIT
.
Zapis JSON |
---|
{ "stopDetails": { object ( |
Pola | |
---|---|
stopDetails |
Informacje o przystankach przyjazdu i odjazdu w danym kroku. |
localizedValues |
Tekstowe reprezentacje właściwości |
headsign |
Określa kierunek, w którym należy podróżować tą linią, zgodnie z oznaczeniem na pojeździe lub na przystanku początkowym. Kierunek to często stacja końcowa. |
headway |
Określa oczekiwany czas jako okres między odjazdami z tego samego przystanku w tym czasie. Jeśli na przykład wartość headway seconds wynosi 600, w przypadku spóźnienia się na autobus musisz poczekać 10 minut. Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „ |
transitLine |
Informacje o linii transportu publicznego użytej w tym kroku. |
stopCount |
Liczba przystanków od przystanku początkowego do przystanku docelowego. Ta liczba obejmuje przystanek docelowy, ale nie obejmuje przystanku początkowego. Jeśli na przykład trasa zaczyna się na przystanku A, przebiega przez przystanki B i C, a kończy się na przystanku D,
zwraca 3. |
tripShortText |
Tekst, który pojawia się w harmonogramach i na tablicach informacyjnych, aby zidentyfikować przejazd środkiem transportu publicznego dla pasażerów. Tekst powinien jednoznacznie identyfikować przejazd w ramach dnia obsługi. Na przykład „538” to |
TransitStopDetails
Szczegóły przystanków transportu publicznego dla RouteLegStep
.
Zapis JSON |
---|
{ "arrivalStop": { object ( |
Pola | |
---|---|
arrivalStop |
Informacje o przystanku docelowym w przypadku danego kroku. |
arrivalTime |
Szacowany czas dotarcia na miejsce. Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: |
departureStop |
Informacje o przystanku początkowym kroku. |
departureTime |
|