Route für öffentliche Verkehrsmittel abrufen

Entwickler im Europäischen Wirtschaftsraum (EWR)

Eine Route für öffentliche Verkehrsmittel enthält Navigationsanweisungen für die in der Region verfügbaren öffentlichen Verkehrsmittel. Zu den Optionen für öffentliche Verkehrsmittel gehören unter anderem Busse, U-Bahnen und Züge. Eine Route für öffentliche Verkehrsmittel enthält in der Regel auch Anweisungen zum Gehen zu, von und zwischen Haltestellen. Da für eine Route mit öffentlichen Verkehrsmitteln in der Regel mehr als ein Verkehrsmittel erforderlich ist, unterscheidet sich die Art und Weise, wie Sie die Route anfordern, und einige Teile der Antwort.

Unterschiede zwischen ÖPNV-Routen und anderen Routen

Routen für öffentliche Verkehrsmittel, die Sie durch Festlegen von „travelMode“ auf „TRANSIT“ anfordern, unterscheiden sich von Routen mit anderen „travelMode“-Optionen. Sie können nicht alle Objekte und Optionen anfordern. Außerdem werden in der Antwort im Vergleich zu anderen Routen unterschiedliche Felder zurückgegeben.

In der Routes API ist ein Schritt immer eine Navigationsanweisung für alle Arten von Reisen. Jede Navigationsanweisung ist also ein Schritt. Eine Antwort für Routen für öffentliche Verkehrsmittel ähnelt Routen mit anderen Verkehrsmitteln, es gibt jedoch einige wichtige Unterschiede:

Unterschiede bei Anfragen Unterschiede bei den Antworten
Sie können keine Zwischenziele angeben. Enthält Details zum öffentlichen Nahverkehr.
Keine verbrauchsarmen Routen verfügbar Enthält Metadaten für jeden Verkehrsmittelmodus, die die Zusammenfassung der Schritte für diesen Verkehrsmittelmodus in `stepsOverview` enthalten. Verwenden Sie die Feldmaske `routes.legs.stepsOverview`, um diese Metadaten anzufordern.
Es kann nicht angegeben werden, wie und ob Verkehrsdaten einbezogen werden sollen.
Zu vermeidende Routenfunktionen können nicht angegeben werden
transitPreferences kann nur für routingPreference angegeben werden. Weitere Informationen finden Sie unter TransitPreferences.

Weitere Informationen zur von der Routes API zurückgegebenen Antwort finden Sie unter Antworten für Transitrouten prüfen.

Route für öffentliche Verkehrsmittel abrufen

  1. Legen Sie Start- und Zielort fest.

  2. Legen Sie die Mobilitätsform auf „Öffentliche Verkehrsmittel“ fest:

    travelMode: "TRANSIT"

  3. Fügen Sie eine Feldmaske hinzu, um die gewünschten Antwortfelder zu erhalten. Weitere Informationen finden Sie unter Erforderliche Felder für die Transitroute anfordern.

  4. Legen Sie bei Bedarf optionale Parameter fest. Weitere Informationen finden Sie unter Parameter für eine Transitroute festlegen.

Felder für die Transitroute anfordern

Fordern Sie die benötigten Felder für die Transitroute mit Feldmasken an. Die folgende Tabelle enthält einige vorgeschlagene Antworten für eine Transitroute und die Feldmaske, die zum Anfordern dieser Antworten verwendet werden muss.

So fordern Sie diese Informationen an Diese Feldmaske verwenden
Alle Routendetails routes.*
Alle Details zu öffentlichen Verkehrsmitteln routes.legs.steps.transitDetails
Startort für jede Etappe routes.legs.steps.startLocation
Endstandort für jede Etappe routes.legs.steps.endLocation
Routen-Polylinie für jeden Schritt routes.legs.steps.polyline
Art des für jeden Schritt verwendeten ÖPNV routes.legs.steps.travelMode
Geschätzter Fahrpreis für jeden Schritt und die Route sowie lokalisierter geschätzter Fahrpreis routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

Hinweis: transitFare wird nur bereitgestellt, wenn die API Fahrpreisinformationen für alle Schritte ermitteln kann.

Lokalisierter Text für Dauer und Distanz routes.localizedValues

Weitere Informationen zum Festlegen von Feldmasken finden Sie unter Zurückzugebende Felder auswählen.

Parameter für eine ÖPNV-Route festlegen

Hier sind die relevanten Parameter für ÖPNV-Routen:

So gehts Diesen Parameter verwenden Hinweise
Öffentliches Verkehrsmittel auswählen travelMode: "TRANSIT" Erforderlich. Weitere Informationen
Ankunfts- oder Abfahrtszeit festlegen "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"

ODER

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
Optional. Sie können entweder „arrival_time“ oder „departure_time“ angeben. Wenn keine der beiden Zeiten angegeben ist, wird für departure_time standardmäßig die aktuelle Ausführungszeit (now) verwendet. Ankunfts- und Abfahrtszeiten können nur innerhalb des folgenden Zeitfensters festgelegt werden, wobei die aktuelle Ausführungszeit (now) als Referenz dient:
  • bis einschließlich 7 Tage vor dem now
  • bis einschließlich 100 Tage nach dem now
Die Zeit wird als Zeitstempel im RFC3339-UTC-„Zulu“-Format angegeben. Weitere Informationen

Hinweis: Fahrpläne für öffentliche Verkehrsmittel ändern sich häufig. Die verfügbaren Fahrten können sich im Laufe der Zeit ändern. Es gibt keine Garantie, dass Vorhersagen, die weit im Voraus erstellt werden, konsistente Ergebnisse liefern.

Alternative Routen einbeziehen "computeAlternativeRoutes": true Optional. Auf „true“ setzen, damit Compute Routes bis zu drei zusätzliche Routen berechnet, sofern verfügbar. Weitere Informationen
Einstellungen für den Verkehrsmitteltyp angeben "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}

Hinweis: Wenn Sie eine bevorzugte Verkehrsmittelart angeben, können die zurückgegebenen Routen je nach Effizienz der Route und Verfügbarkeit der bevorzugten Verkehrsmittelart auch andere Verkehrsmittelarten verwenden oder nur andere Verkehrsmittelarten verwenden.

Optional. Geben Sie bevorzugte Verkehrsmittel an. Weitere Informationen
Einstellungen für die Route mit öffentlichen Verkehrsmitteln festlegen "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} Optional. Einstellungen für das Transit-Routing festlegen Weitere Informationen

Beispiel: Route mit öffentlichen Verkehrsmitteln abrufen

Im folgenden Beispiel wird eine Route mit öffentlichen Verkehrsmitteln mit den folgenden Parametern abgerufen:

  • Gibt Einstellungen für die Fahrt mit dem Zug und kurze Fußwege an.

  • Fordert alternative Routen an.

  • Stellt eine Feldmaske bereit, die die Transitdetails zurückgibt:

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'

Die Antwort enthält route.legs.steps.transitDetails-Felder für die beiden Routen:

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