Trasa dojazdu transportem publicznym zawiera wskazówki dojazdu transportem publicznym z opcji dostępnych w regionie. Środki transportu publicznego mogą obejmować autobusy, metro pociągów. Trasa transportu publicznego zwykle zawiera też instrukcje dotyczące pieszo do stacji transportu publicznego, ze stacji oraz między stacjami. Ponieważ trasa transportu publicznego zwykle wymaga podróży kilkoma środkami transportu, jak a niektóre części odpowiedzi są różne.
Czym różnią się trasy transportu publicznego od innych tras
Trasy transportu publicznego, o które prosisz, ustawiając tryb podróży jako TRANSIT, różnią się z różnych opcji trybu podróży. Nie możesz zażądać wszystkich tych samych obiektów i opcji, a odpowiedź zwraca w różnych polach w porównaniu z innymi trasami.
W interfejsie Routes API kroki są niezmiennie jedną instrukcją nawigacji do każdego rodzaju podróży. Każda instrukcja nawigacji to kolejny krok. Transport publiczny reagowanie na trasę jest bardzo podobne do tras innych środków transportu, różnice:
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 dotyczące każdego środka podróży, w tym podsumowanie czynności do wykonania. tego środka transportu w sekcji „stepsOverview” (aby poprosić o te metadane, użyj funkcji maska 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 dla atrybutu transitPreferences dla
routingPreference Więcej informacji:
[TransitPreferences](reference/rest/v2/TransitPreferences). |
Więcej informacji o odpowiedzi zwracanej przez interfejs Routes API znajdziesz w artykule Przeglądanie odpowiedzi na temat tras 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 Poproś o pola tras transportu publicznego, których potrzebujesz.
W razie potrzeby ustaw parametry opcjonalne. Zobacz Ustaw parametry 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. Tabela poniżej zawiera kilka sugerowanych odpowiedzi dotyczących transportu publicznego oraz maską pola, która ma być używana do ich żądania.
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 każdą trasę; Zlokalizowana szacowana cena | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Uwaga: pole |
Zlokalizowany tekst określający czas trwania i odległość | routes.localizedValues |
Więcej informacji o ustawianiu masek pól znajdziesz w sekcji Wybierz pola, które chcesz zwrócić.
Ustawianie parametrów trasy transportu publicznego
Oto istotne parametry dla tras transportu publicznego:
Aby to zrobić: | Użyj tego parametru | Uwagi |
---|---|---|
Wybierz środek transportu | travelMode: "TRANSIT" |
Wymagane. Więcej informacji |
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 zostanie podany żaden czas, departure_time przyjmuje domyślnie wartość
bieżący czas wykonania (now ). Możesz ustawić
odlotów wyłącznie w następującym przedziale czasu, przy obecnej
czas wykonania (now ) jako plik referencyjny:
|
Uwzględnij trasy alternatywne | "computeAlternativeRoutes": true |
Opcjonalnie: Ustaw wartość Prawda, aby interfejs Routes API mógł obliczać do 3 trasy dodatkowe, 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 podróży, zwrócone trasy mogą nadal korzystać z innych środków transportu publicznego, a nawet korzystać tylko z innych środków transportu, w zależności od efektywność trasy i dostępność preferowanego wariantu w podróży. |
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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }