Na trasie dojazdu transportem publicznym znajdziesz wskazówki dojazdu, korzystając z opcji transportu publicznego dostępnych w danym regionie. Transport publiczny może obejmować m.in. autobusy, metro czy pociągi. Trasa dojazdu transportem publicznym zazwyczaj zawiera też instrukcje, jak dojść do przystanku, z przystanku i pomiędzy stacjami. Trasa transportu publicznego zwykle wymaga podróżowania kilkoma środkami transportu, więc żądania trasy i niektórych części odpowiedzi są różne.
Czym różnią się trasy transportu publicznego od innych tras
Trasy transportu publicznego, o które prosisz za pomocą ustawienia TravelMode jak TRANSIT, różnią się od tras, które korzystają z różnych opcji podróży. Nie możesz zażądać wszystkich tych samych obiektów i opcji, a odpowiedź zwraca inne pola w porównaniu z innymi trasami.
W interfejsie Routes API kroki stanowią jedną instrukcję nawigacji dla wszystkich rodzajów podróży. Każda instrukcja nawigacji to kolejny krok. Odpowiedzi na trasę transportu publicznego są bardzo podobne do tras w przypadku innych środków transportu, ale różnią się od siebie w kilku istotnych kwestiach:
Różnice dotyczące żądań | Różnice pod względem odpowiedzi |
---|---|
Nie można określać pośrednich punktów pośrednich. | Zawiera informacje o transporcie publicznym. |
Nie można wybrać tras przyjaznych dla środowiska | Zawiera metadane każdego środka podróży, które zawierają podsumowanie kroków do wykonania w danym środkach transportu. Informacje o tym znajdziesz w sekcji „stepsOverview” (aby uzyskać te metadane, użyj maski pola „routes.legs.stepsOverview”). |
Nie można określić, czy i w jaki sposób mają być uwzględniane dane dotyczące ruchu | |
Nie można określić obiektów trasy, których należy unikać | |
Można określić tylko transitPreferences dla routingPreference . Szczegółowe informacje znajdziesz w sekcji [TransitPreferences](reference/rest/v2/TransitPreferences). |
Więcej informacji o odpowiedzi zwracanej przez interfejs Routes API znajdziesz w artykule Sprawdzanie odpowiedzi na trasy transportu publicznego.
Wyznaczanie trasy transportu publicznego
Ustaw miejsce wylotu i cel podróży.
Ustaw tryb podróży na transport publiczny:
travelMode: "TRANSIT"
Dodaj maskę pola, aby uzyskać odpowiednie pola odpowiedzi. Zobacz Wysyłanie prośby o podanie wymaganych pól trasy transportu publicznego.
W razie potrzeby ustaw parametry opcjonalne. Zobacz Ustawianie parametrów trasy transportu publicznego.
Poproś o wymagane pola trasy transportu publicznego
Zażądaj pól trasy transportu publicznego, których potrzebujesz, za pomocą masek pól. W tabeli poniżej znajdziesz kilka sugerowanych odpowiedzi dla trasy transportu publicznego oraz maskę pola, która służy do wysyłania próśb o ich przesłanie.
Aby poprosić o te informacje | Użyj tej maski pola |
---|---|
Wszystkie szczegóły trasy | routes.* |
Wszystkie szczegóły transportu publicznego | routes.legs.steps.transitDetails |
Lokalizacja początkowa każdego etapu | routes.legs.steps.startLocation |
Lokalizacja końcowa każdego etapu | routes.legs.steps.endLocation |
Wyznacz linię łamaną dla każdego kroku | routes.legs.steps.polyline |
Rodzaje transportu publicznego wykorzystywane na poszczególnych etapach | routes.legs.steps.travelMode |
szacunkowe opłaty za każdy etap i trasę oraz zlokalizowane szacunkowe ceny. | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Uwaga: wartość |
Zlokalizowany tekst określający czas trwania i odległość | routes.localizedValues |
Więcej informacji o ustawianiu masek pól znajdziesz w artykule Wybieranie pól do zwrócenia.
Ustawianie parametrów trasy transportu publicznego
Oto istotne parametry dla tras transportu publicznego:
Aby to zrobić: | Użyj tego parametru | Notatki |
---|---|---|
Wybierz środek transportu | travelMode: "TRANSIT" |
Wymagane. Dowiedz się więcej. |
Ustawianie godziny przyjazdu lub wyjazdu | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
LUB "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
Opcjonalnie. Możesz podać czas przyjazdu lub wyjazdu. Jeśli nie podasz żadnej godziny, w polu departure_time domyślnie zostanie użyty bieżący czas wykonania (now ). Możesz ustawić godziny przyjazdu i odjazdu tylko w tym przedziale czasu, przy czym odwołaniem wskaże bieżący czas wykonania (now ):
|
Uwzględnij trasy alternatywne | "computeAlternativeRoutes": true |
Opcjonalnie. Ustaw wartość Prawda, aby interfejs Routes API mógł obliczać do 3 dodatkowych tras (jeśli są dostępne). Więcej informacji |
Określ preferencje dla typu transportu publicznego | "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}
Uwaga: jeśli określisz preferowany środek transportu, zwrócone trasy mogą nadal korzystać z innych środków transportu, a nawet korzystać tylko z innych środków transportu, w zależności od sprawności trasy i dostępności preferowanego środka transportu. |
Opcjonalnie. Określ preferowane środki transportu publicznego. Więcej informacji |
Określ preferencje trasy transportu publicznego | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Opcjonalnie. Określ ustawienia routingu transportu publicznego. Więcej informacji |
Przykład: wyznaczenie trasy dla transportu publicznego
Poniższy przykład pokazuje trasę dojazdu transportem publicznym z następującymi parametrami:
Określa preferencje dotyczące podróży pociągiem i mniejszej liczby pieszych.
Żądania korzystają z alternatywnych tras.
Udostępnia maskę pola, która zwraca szczegóły transportu:
curl -X POST -H 'content-type: application/json' -d '{ "origin": { "address": "Humberto Delgado Airport, Portugal" }, "destination": { "address": "Basílica of Estrela, Praça da Estrela, 1200-667 Lisboa, Portugal" }, "travelMode": "TRANSIT", "computeAlternativeRoutes": true, "transitPreferences": { routingPreference: "LESS_WALKING", allowedTravelModes: ["TRAIN"] }, }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.legs.steps.transitDetails' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Odpowiedź zawiera pola (route.legs.steps.transitDetails
) w przypadku 2 tras:
{ "routes": [ { "legs": [ { "steps": [ {}, {}, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73532, "longitude": -9.14543 } } }, "arrivalTime": "2023-08-26T10:49:42Z", "departureStop": { "name": "Aeroporto", "location": { "latLng": { "latitude": 38.769047799999996, "longitude": -9.1284593 } } }, "departureTime": "2023-08-26T10:32:10Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "11:49" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:32" }, "timeZone": "Europe/Lisbon" } }, "headsign": "São Sebastião", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Vermelha", "color": "#f23061", "nameShort": "Vm", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 11 } }, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Rato", "location": { "latLng": { "latitude": 38.7201022, "longitude": -9.1540562 } } }, "arrivalTime": "2023-08-26T11:01:37Z", "departureStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73527, "longitude": -9.1455200000000012 } } }, "departureTime": "2023-08-26T10:57:57Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "12:01" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:57" }, "timeZone": "Europe/Lisbon" } }, "headsign": "Rato", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Amarela", "color": "#f2c200", "nameShort": "Am", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 4 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }