Trasa transportu publicznego zawiera wskazówki dojazdu z wykorzystaniem dostępnych w danym regionie środków transportu publicznego. Opcje transportu publicznego mogą obejmować m.in. autobusy, metro i pociągi. Trasa transportu publicznego zwykle zawiera też instrukcje dotyczące dojścia do stacji transportu publicznego, wyjścia z niej i przejścia między stacjami. Trasa transportu publicznego zwykle wymaga użycia więcej niż jednego środka transportu, dlatego sposób wysyłania prośby o trasę i niektóre części odpowiedzi są inne.
Czym różnią się trasy transportu publicznego od innych tras
Trasy transportu publicznego, o które prosisz, ustawiając wartość travelMode na TRANSIT, różnią się od tras korzystających z innych opcji travelMode. Nie możesz poprosić o wszystkie te same obiekty i opcje, a odpowiedź zwraca inne pola niż w przypadku innych ścieżek.
W interfejsie Routes API kroki zawsze zawierają jedną instrukcję nawigacyjną dla wszystkich rodzajów podróży. Każda instrukcja nawigacji to krok. Odpowiedź dotycząca trasy transportu publicznego jest bardzo podobna do odpowiedzi dotyczących tras z innymi środkami transportu, ale występują tu pewne kluczowe różnice:
Prośba o różnice | Różnice w odpowiedziach |
---|---|
Nie możesz określić pośrednich punktów trasy. | Zawiera szczegóły dotyczące transportu publicznego. |
Nie można uzyskać tras przyjaznych dla środowiska | Zawiera metadane każdego środka transportu, które zawierają podsumowanie kroków dla tego środka transportu w polu `stepsOverview` (aby poprosić o te metadane, użyj maski pola `routes.legs.stepsOverview`). |
Nie można określić, jak i czy uwzględniać dane o ruchu | |
Nie można określić funkcji trasy, których należy unikać | |
W przypadku parametru routingPreference można określić tylko wartość transitPreferences . Więcej informacji znajdziesz w sekcji TransitPreferences . |
Więcej informacji o odpowiedzi zwracanej przez interfejs Routes API znajdziesz w artykule Sprawdzanie odpowiedzi dotyczących tras transportu publicznego.
Aby wyznaczyć trasę transportem publicznym
Ustaw miejsce początkowe i miejsce docelowe.
Ustaw tryb podróży na transport publiczny:
travelMode: "TRANSIT"
Dodaj maskę pola, aby uzyskać wybrane pola odpowiedzi. Zobacz Prośba o pola trasy transportu publicznego.
W razie potrzeby ustaw parametry opcjonalne. Zobacz Ustawianie parametrów trasy transportu publicznego.
Poproś o pola trasy transportu publicznego, których potrzebujesz
Poproś o pola trasy transportu publicznego, których potrzebujesz, używając masek pól. W tej tabeli znajdziesz sugerowane odpowiedzi dotyczące trasy transportu publicznego oraz maskę pola, której należy użyć, aby o nie poprosić.
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 |
Miejsce docelowe każdego etapu | routes.legs.steps.endLocation |
Linia trasy dla każdego kroku | routes.legs.steps.polyline |
Rodzaj transportu użyty na każdym etapie | routes.legs.steps.travelMode |
szacunkową cenę za każdy etap i trasę oraz zlokalizowaną szacunkową cenę; | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Uwaga: wartość |
Zlokalizowany tekst dotyczący czasu trwania i odległości | 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 parametry związane z trasami przejazdu transportem publicznym:
Aby to zrobić: | Używanie tego parametru | Uwagi |
---|---|---|
Wybierz środek transportu | travelMode: "TRANSIT" |
Wymagane. Więcej informacji |
Ustawianie godziny przyjazdu lub odjazdu | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
LUB "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
Opcjonalnie. Możesz określić arrival_time lub departure_time. Jeśli nie podasz żadnego z tych czasów, wartość departure_time będzie domyślnie ustawiona na bieżący czas wykonania (now ). Czasy przyjazdu i odjazdu możesz ustawić tylko w tym przedziale czasu, przy czym bieżący czas wykonania (now ) jest czasem odniesienia:
Uwaga: rozkłady jazdy transportu publicznego często się zmieniają, dostępne przejazdy mogą się zmieniać z czasem, a w przypadku prognoz z dużym wyprzedzeniem nie ma gwarancji uzyskania spójnych wyników. |
Uwzględnij trasy alternatywne | "computeAlternativeRoutes": true |
Opcjonalnie. Jeśli ta wartość jest ustawiona na „true”, usługa Compute Routes oblicza maksymalnie 3 dodatkowe trasy, jeśli są dostępne. Więcej informacji |
Określanie preferencji dotyczących rodzaju transportu | "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 wyłącznie z 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ślanie preferencji dotyczących trasy transportu publicznego | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Opcjonalnie. Określ preferencje dotyczące wyznaczania tras transportu publicznego. Więcej informacji |
Przykład: wyznaczanie trasy transportem publicznym
W tym przykładzie pobieramy trasę transportu publicznego z tymi parametrami:
Określa preferencje dotyczące podróży pociągiem i mniejszej ilości chodzenia.
Prosi o alternatywne trasy.
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
dla 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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }