Znajdź trasę tranzytową

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

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

  1. Ustaw miejsce początkowe i miejsce docelowe.

  2. Ustaw tryb podróży na transport publiczny:

    travelMode: "TRANSIT"

  3. Dodaj maskę pola, aby uzyskać wybrane pola odpowiedzi. Zobacz Prośba o pola trasy transportu publicznego.

  4. 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ść transitFare jest podawana tylko wtedy, gdy interfejs API może określić informacje o opłatach za przejazd na wszystkich etapach.

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:
  • do 7 dni przed now włącznie
  • do 100 dni po now
Czas jest wyrażony jako sygnatura czasowa w formacie RFC3339 UTC „Zulu”. Więcej informacji

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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}