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 eine Anleitung zum Gehen zu, von und zwischen den Haltestellen. Da Sie für eine ÖPNV-Route in der Regel mehr als eine Mobilitätsform nutzen müssen, unterscheiden sich die Anfrage der Route und einige Teile der Antwort.

Unterschiede zwischen öffentlichen Verkehrsmitteln und anderen Routen

Öffentliche Verkehrsmittelrouten, 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 und die Antwort enthält im Vergleich zu anderen Routen unterschiedliche Felder.

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 stark der Antwort für andere Verkehrsmittel, mit einigen wichtigen Unterschieden:

Unterschiede bei Anfragen Unterschiede bei der Antwort
Zwischenziele können nicht angegeben werden. Enthält Details zu öffentlichen Verkehrsmitteln.
Ich kann keine umweltfreundlichen Routen abrufen. Enthält Metadaten für jeden Verkehrsmitteltyp, die eine Zusammenfassung der Schritte für diesen Verkehrsmitteltyp enthalten, im Feld „stepsOverview“. Verwenden Sie die Feldmaske „routes.legs.stepsOverview“, um diese Metadaten anzufordern.
Es kann nicht angegeben werden, wie und ob Besucherdaten einbezogen 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 zu erhalten. Weitere Informationen finden Sie unter Erforderliche Felder für ÖPNV-Routen anfordern.

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

Die benötigten Felder für öffentliche Verkehrsmittel anfordern

Verwenden Sie Feldmasken, um die erforderlichen Felder für öffentliche Verkehrsmittel anzufordern. Die folgende Tabelle enthält einige Vorschläge für Antworten zu einer ÖPNV-Route und die Feldmaske, die zum Anfordern 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 jeden Streckenabschnitt routes.legs.steps.startLocation
Endpunkt 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 bereitgestellt, wenn die API Fahrpreisinformationen für alle Schritte ermitteln kann.

Lokalisierter Text für Dauer und Entfernung 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 Routen für öffentliche Verkehrsmittel:

Gehen Sie dazu so vor: 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 RFC3339 UTC „Zulu“-Format angegeben. Weitere Informationen
Alternative Routen einschließen "computeAlternativeRoutes": true Optional. Legen Sie diesen Wert auf „wahr“ fest, damit die Routes API bis zu drei zusätzliche Routen berechnet, sofern verfügbar. Weitere Informationen
Einstellungen für den Verkehrsmitteltyp festlegen "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}

Hinweis: Wenn Sie einen bevorzugten Verkehrsmitteltyp angeben, können die zurückgegebenen Routen auch andere Verkehrsmitteltypen verwenden, je nach Effizienz der Route und Verfügbarkeit des bevorzugten Verkehrsmittels.

Optional. Geben Sie die bevorzugten Mobilitätsformen an. 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 mit öffentlichen Verkehrsmitteln abrufen

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

  • Gibt die Einstellungen für Fahrten mit der Bahn und kurze 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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}