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 zawiera też zwykle instrukcje dotyczące chodzenia do i z 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 to zawsze jedna instrukcja nawigacji w przypadku wszystkich rodzajów podróży. Każda instrukcja nawigacji to krok. Odpowiedź dotycząca trasy komunikacją zbiorową jest bardzo podobna do odpowiedzi dotyczącej trasy z innymi środkami transportu, ale różni się od niej w kilku kluczowych 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 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ć elementó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 początkowe i miejsce docelowe.
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 dotyczący czasu trwania i odległości; | 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 na Prawda, aby interfejs Routes API obliczył 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 używać tylko innych środków transportu, w zależności od wydajnoś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 preferencje dotyczące trasy transportu publicznego. Więcej informacji |
Przykład: wyznaczenie trasy dla transportu publicznego
W tym przykładzie uzyskujemy trasę tranzytową z tymi 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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }