Znajdź trasę tranzytową

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Trasa transportu publicznego zawiera wskazówki nawigacyjne dotyczące 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ż wskazówki dotyczące dojścia do stacji transportu publicznego, powrotu z niej i przemieszczania się między stacjami. Trasa transportu publicznego zwykle wymaga korzystania z więcej niż jednego środka transportu, dlatego sposób wysyłania żądania trasy 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 travelMode na TRANSIT, różnią się od tras korzystających z innych opcji travelMode. Nie możesz żądać wszystkich tych samych obiektów i opcji, a odpowiedź zwraca inne pola w porównaniu z innymi trasami.

W interfejsie Routes API kroki są zawsze jedną instrukcją nawigacji we wszystkich typach podróży. Każda instrukcja nawigacji jest więc krokiem. Odpowiedź dotycząca trasy transportu publicznego jest bardzo podobna do tras z innymi środkami transportu, z kilkoma kluczowymi różnicami:

Różnice w żądaniach Różnice w odpowiedziach
Nie możesz określić punktów pośrednich. Zawiera szczegóły dotyczące transportu publicznego.
Nie można uzyskać tras przyjaznych dla środowiska Zawiera metadane dotyczące każdego środka transportu, które obejmują 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ć, czy i jak uwzględniać dane o ruchu
Nie można określić cech trasy, których należy unikać
W przypadku routingPreference można określić tylko transitPreferences. Więcej informacji: TransitPreferences.

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

Aby uzyskać trasę transportu publicznego

  1. Ustaw miejsce początkowe i cel podróży.

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

    travelMode: "TRANSIT"

  3. Dodaj maskę pola, aby uzyskać odpowiednie pola odpowiedzi. Zobacz Żądanie pól kierowania umożliwiającego ruch między sieciami.

  4. W razie potrzeby ustaw parametry opcjonalne. Więcej informacji znajdziesz w artykule Ustawianie parametrów trasy transportu publicznego.

Poproś o pola trasy transportu publicznego, których potrzebujesz

Za pomocą masek pól poproś o pola trasy transportu publicznego, których potrzebujesz. Tabela poniżej zawiera kilka sugerowanych odpowiedzi dotyczących trasy transportu publicznego oraz maskę pola, której należy użyć, aby je uzyskać.

Aby poprosić o te informacje: Użyj tej maski pola
Wszystkie szczegóły trasy routes.*
Wszystkie szczegóły dotyczące transportu publicznego routes.legs.steps.transitDetails
Lokalizacja początkowa każdego etapu routes.legs.steps.startLocation
lokalizację końcową 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
szacunkową opłatę za każdy etap i trasę, szacunkową opłatę w walucie lokalnej. routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

Uwaga: pole transitFare jest podawane 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 odpowiednie parametry tras transportu publicznego:

Aby to zrobić: Użyj tego parametru Uwagi
Wybieranie środka transportu publicznego 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 określić arrival_time lub departure_time. Jeśli nie podasz żadnej z tych wartości, departure_time domyślnie przyjmie bieżący czas wykonania (now). Godziny przyjazdu i odjazdu możesz ustawić tylko w następującym przedziale czasowym, z bieżącym czasem wykonania (now) jako odniesieniem:
  • do 7 dni przed now
  • 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ć w czasie i nie ma gwarancji, że prognozy będą spójne z dużym wyprzedzeniem.

Uwzględnij alternatywne trasy "computeAlternativeRoutes": true Opcjonalnie: Ustaw wartość „true”, aby funkcja Compute Routes obliczała maksymalnie 3 dodatkowe trasy, jeśli są dostępne. Więcej informacji
Określanie preferencji dotyczących typu przejścia "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 publicznego, a nawet tylko z innych środków transportu publicznego, 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 routingu umożliwiającego ruch między sieciami. Więcej informacji

Przykład: wyznaczanie trasy transportu publicznego

W tym przykładzie pobierana jest trasa transportu publicznego z tymi parametrami:

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

  • Żąda alternatywnych tras.

  • Udostępnia maskę pola, która zwraca szczegóły transportu publicznego:

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