Route für öffentliche Verkehrsmittel abrufen

Eine Route mit öffentlichen Verkehrsmitteln bietet Navigationsanweisungen für die in der Region verfügbaren Optionen für öffentliche Verkehrsmittel. Dazu zählen unter anderem Busse, U-Bahnen und Züge. Eine Route mit öffentlichen Verkehrsmitteln enthält normalerweise auch Anweisungen für den Fußweg zu, von und zwischen Bahnhöfen und Haltestellen. Da Sie bei einer Route mit öffentlichen Verkehrsmitteln in der Regel mehr als ein Verkehrsmittel nutzen müssen, unterscheiden sich die Anforderung der Route und einige Teile der Antwort.

Unterschiede zwischen Routen mit öffentlichen Verkehrsmitteln und anderen Routen

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

In der Routes API sind Schritte durchweg eine Navigationsanweisung für alle Arten von Reisen. Jede Navigationsanweisung ist also ein Schritt. Die Antwort für eine Route für öffentliche Verkehrsmittel ist Routen mit anderen Mobilitätsformen sehr ähnlich. Es gibt aber einige wichtige Unterschiede:

Unterschiede bei Anfragen Unterschiede bei Antworten
Sie können keine Wegpunkte angeben. Umfasst Details zu öffentlichen Verkehrsmitteln.
Keine spritsparenden Routen Enthält Metadaten für jede Mobilitätsform, die eine Zusammenfassung der Schritte für diese Mobilitätsform enthält. Verwenden Sie dazu die Feldmaske „routes.legs.stepsOverview“, um diese Metadaten anzufordern.
Es kann nicht angegeben werden, wie und ob Verkehrsdaten einbezogen werden sollen
Es können keine Routenelemente angegeben werden, die vermieden werden sollen
Für routingPreference kann nur transitPreferences angegeben werden. Weitere Informationen finden Sie unter [TransitPreferences](reference/rest/v2/TransitPreferences).

Weitere Informationen zu der von der Routes API zurückgegebenen Antwort finden Sie unter Antworten für Routen mit öffentlichen Verkehrsmitteln prüfen.

Route für öffentliche Verkehrsmittel abrufen

  1. Legen Sie Start- und Zielort fest.

  2. Wählen Sie „Öffentliche Verkehrsmittel“ als Mobilitätsform:

    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 Route für öffentliche Verkehrsmittel anfordern.

  4. Legen Sie bei Bedarf optionale Parameter fest. Weitere Informationen finden Sie unter Parameter für Routen mit öffentlichen Verkehrsmitteln festlegen.

Erforderliche Felder für Routen mit öffentlichen Verkehrsmitteln anfordern

Fordern Sie die benötigten Routenfelder für öffentliche Verkehrsmittel mithilfe von Feldmasken an. Die folgende Tabelle enthält einige Antwortvorschläge für eine Route mit öffentlichen Verkehrsmitteln sowie die Feldmaske für deren Anforderung.

Zum Anfordern dieser Informationen Diese Feldmaske verwenden
Alle Routendetails routes.*
Alle Details zu öffentlichen Verkehrsmitteln routes.legs.steps.transitDetails
Startposition für jede Etappe routes.legs.steps.startLocation
Zielort für jede Etappe routes.legs.steps.endLocation
Polylinie der Route für jeden Schritt routes.legs.steps.polyline
Art des öffentlichen Verkehrsmittels, das für die einzelnen Schritte verwendet wird routes.legs.steps.travelMode
Geschätzter Preis für jeden Schritt und die Route sowie lokaler geschätzter Fahrpreis routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

Hinweis: transitFare wird nur angegeben, 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 Felder auswählen, die zurückgegeben werden sollen.

Parameter für eine Route mit öffentlichen Verkehrsmitteln festlegen

Dies sind die relevanten Parameter für Routen mit öffentlichen Verkehrsmitteln:

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. Du kannst entweder „arrival_time“ oder „Abreisezeit“ angeben. Wenn keine der beiden Zeiten 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 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 den Wert auf „true“, damit die Routes API bis zu drei zusätzliche Routen berechnet, falls verfügbar. Weitere Informationen
Einstellungen für öffentliche Verkehrsmittel festlegen "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}

Hinweis: Wenn Sie eine bevorzugte Mobilitätsform angeben, werden für zurückgegebene Routen möglicherweise weiterhin andere Verkehrsmittel oder sogar nur andere Verkehrsmittel verwendet. Das hängt davon ab, wie effizient die Route ist und ob die bevorzugte Mobilitätsform verfügbar ist.

Optional. Bevorzugte Mobilitätsformen für öffentliche Verkehrsmittel angeben Weitere Informationen
Präferenzen für die Route mit öffentlichen Verkehrsmitteln festlegen "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} Optional. Routeneinstellungen für öffentliche Verkehrsmittel festlegen Weitere Informationen

Beispiel: Route mit öffentlichen Verkehrsmitteln abrufen

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

  • Gibt Präferenzen für Zugreisen und weniger Fußweg an.

  • Fordert alternative Routen an.

  • Gibt eine Feldmaske an, die die Details zu öffentlichen Verkehrsmitteln 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'

In der Antwort werden route.legs.steps.transitDetails-Felder für die beiden Routen angezeigt:

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