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ż instrukcje dotyczące dotarcia do stacji transportu publicznego, powrotu z niej i przemieszczania się 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 żą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 krokiem. 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ć punktów pośrednich. Zawiera szczegóły dotyczące transportu publicznego.
Nie można uzyskać tras przyjaznych dla środowiska Zawiera metadane dla 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 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 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. 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 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
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: 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 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 transportu publicznego

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