Route für öffentliche Verkehrsmittel abrufen

Eine ÖPNV-Route enthält Navigationsanweisungen mit den in der Region verfügbaren öffentlichen Verkehrsmitteln. Zu den öffentlichen Verkehrsmitteln gehören unter anderem Busse, U-Bahnen und Züge. Eine Route für öffentliche Verkehrsmittel enthält in der Regel auch Anweisungen für Fußwege zu, von und zwischen Bahnhöfen. Da für eine Route mit öffentlichen Verkehrsmitteln in der Regel mehrere Mobilitätsformen erforderlich sind, unterscheiden sich die Art und Weise, wie Sie die Route anfordern, und einige Teile der Antwort.

Unterschiede zwischen öffentlichen Verkehrsmitteln und anderen Routen

Öffentliche Verkehrsmittel-Routen, die Sie anfordern, indem Sie „Öffentliche Verkehrsmittel“ als travelMode festlegen, unterscheiden sich von Routen mit anderen travelMode-Optionen. Sie können nicht alle Objekte und Optionen anfordern. Die Antwort gibt im Vergleich zu anderen Routen andere Felder zurück.

In der Routes API sind Schritte für alle Arten von Fahrten einheitlich. Jede Navigationsanweisung ist also ein Schritt. Eine Antwort für öffentliche Verkehrsmittel ähnelt sehr den Antworten für andere Verkehrsmittel, weist jedoch einige wichtige Unterschiede auf:

Unterschiede bei Anfragen Unterschiede bei der Antwort
Wegpunkte können nicht angegeben werden. Enthält Details zu öffentlichen Verkehrsmitteln.
Keine umweltfreundlichen Routen verfügbar Enthält Metadaten für jede Mobilitätsform, die die Zusammenfassung der Schritte für diese Mobilitätsform aus „stepsÜbersicht“ enthalten. Verwenden Sie zum Anfordern dieser Metadaten die Feldmaske „routes.legs.stepsOverview“.
Es kann nicht angegeben werden, wie und ob Verkehrsdaten eingeschlossen werden sollen
Es können keine zu vermeidenden Routenelemente angegeben werden
Für routingPreference kann nur transitPreferences angegeben werden. Weitere Informationen finden Sie unter TransitPreferences.

Weitere Informationen zur von der Routes API zurückgegebenen Antwort finden Sie unter Antworten zu öffentlichen Verkehrsmitteln überprüfen.

So rufen Sie eine Route für öffentliche Verkehrsmittel ab

  1. Legen Sie den 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 abzurufen. Weitere Informationen finden Sie unter Erforderliche Felder für Routen mit öffentlichen Verkehrsmitteln anfordern.

  4. Legen Sie bei Bedarf optionale Parameter fest. Weitere Informationen finden Sie unter Parameter für eine ÖPNV-Route festlegen.

Benötigte Felder für Routen mit öffentlichen Verkehrsmitteln anfordern

Verwenden Sie Feldmasken, um die erforderlichen Felder für die Routen von öffentlichen Verkehrsmitteln anzufordern. Die folgende Tabelle enthält einige Antwortvorschläge für eine Route mit öffentlichen Verkehrsmitteln sowie die Feldmaske, die für die Anfrage verwendet werden soll.

So fordern Sie diese Informationen an: Diese Feldmaske verwenden
Alle Routendetails routes.*
Alle Details zu öffentlichen Verkehrsmitteln routes.legs.steps.transitDetails
Startort für jeden Streckenabschnitt routes.legs.steps.startLocation
Endposition für jeden Abschnitt routes.legs.steps.endLocation
Polylinie für die Route für jeden Schritt routes.legs.steps.polyline
Art des öffentlichen Nahverkehrs für jeden Schritt routes.legs.steps.travelMode
Geschätzter Preis für jeden Schritt und die Route sowie lokalisierter geschätzter Preis routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

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

Lokalisierter Text für Dauer und Entfernung routes.localizedValues

Weitere Informationen zum Festlegen von Feldmasken finden Sie unter Felder für die Rückgabe auswählen.

Parameter für eine ÖPNV-Route festlegen

Hier sind die relevanten Parameter für Routen für öffentliche Verkehrsmittel:

Aktion Diesen Parameter verwenden Hinweise
Mobilitätsform 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 Zeit angegeben ist, wird für departure_time standardmäßig die aktuelle Ausführungszeit (now) verwendet. Sie können Ankunfts- und Abfahrtszeiten nur innerhalb des folgenden Zeitfensters festlegen, wobei die aktuelle Ausführungszeit (now) als Referenz dient:
  • bis einschließlich 7 Tage vor dem now
  • bis einschließlich 100 Tage nach now
Die Zeit wird als Zeitstempel im Format RFC3339 UTC "Zulu" ausgedrückt. Weitere Informationen
Alternative Routen einschließen "computeAlternativeRoutes": true Optional. Setzen Sie diesen Wert auf „true“, um die Routes API bei Verfügbarkeit bis zu drei zusätzliche Routen berechnen zu lassen. Weitere Informationen
Einstellungen für die Mobilitätsform festlegen "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}

Hinweis: Wenn Sie eine bevorzugte Mobilitätsform angeben, können für die zurückgegebenen Routen weiterhin andere oder auch nur andere Verkehrsmittel verwendet werden. Das ist abhängig von der Effizienz der Route und deren Verfügbarkeit.

Optional. Sie können bevorzugte Mobilitätsformen für öffentliche Verkehrsmittel angeben. Weitere Informationen
Einstellungen für die Route mit öffentlichen Verkehrsmitteln festlegen "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} Optional. Geben Sie die Einstellungen für das Routing mit öffentlichen Verkehrsmitteln an. Weitere Informationen

Beispiel: Route für öffentliche Verkehrsmittel abrufen

Im folgenden Beispiel wird eine Route für öffentliche Verkehrsmittel mit den folgenden Parametern abgerufen:

  • Gibt Präferenzen für Zugfahrten und kürzere Fußwege an.

  • Erfordert alternative Routen.

  • Feldmaske angeben, die die ÖPNV-Details 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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}