Znajdź trasę tranzytową

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Trasa transportu publicznego zawiera wskazówki nawigacyjne z wykorzystaniem opcji transportu publicznego dostępnych w danym regionie. 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 trasy transportu publicznego różnią się 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 w porównaniu z innymi ścieżkami.

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 użyciem innych środków transportu, ale występują tu pewne istotne różnice:

Prośba o wyświetlenie różnic 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ć
Można określić tylko wartość transitPreferences dla parametru routingPreference. Więcej informacji: TransitPreferences

Więcej informacji o odpowiedzi zwracanej przez interfejs Routes API znajdziesz w artykule Sprawdzanie odpowiedzi dotyczących trasy transportu publicznego.

Aby uzyskać 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 Żądanie potrzebnych pól 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 tabeli poniżej 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
Lokalizacja końcowa każdego etapu routes.legs.steps.endLocation
linia łamana trasy dla każdego kroku, routes.legs.steps.polyline
Rodzaj transportu użyty na każdym etapie routes.legs.steps.travelMode
szacunkowa cena za każdy etap i trasę oraz zlokalizowana szacunkowa cena; routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

Uwaga: transitFare jest podawany tylko wtedy, gdy interfejs API może określić informacje o opłatach za przejazd w przypadku wszystkich kroków.

Zlokalizowany tekst dotyczący czasu trwania i dystansu 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 odpowiednie parametry tras transportu publicznego:

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 żadnej wartości, departure_time domyślnie przyjmie bieżący czas wykonania (now). Czas 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 prognozy z dużym wyprzedzeniem nie gwarantują spójnych wyników.

Uwzględnij alternatywne trasy "computeAlternativeRoutes": true Opcjonalnie: Jeśli ta wartość jest ustawiona na „true”, interfejs Compute Routes oblicza do 3 dodatkowych tras, 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 tylko z nich, w zależności od efektywnoś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ę transportem publicznym z tymi parametrami:

  • Określa preferencje dotyczące podróży pociągiem i mniejszej ilości chodzenia.

  • Prosi o alternatywne trasy.

  • Zawiera 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 route.legs.steps.transitDetails pola 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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}