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 mit öffentlichen Verkehrsmitteln, 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 und die Antwort enthält im Vergleich zu anderen Routen unterschiedliche Felder.

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

Unterschiede bei Anfragen Unterschiede bei den Antworten
Sie können keine Zwischenziele angeben. Enthält Transitdetails.
Keine verbrauchsarme Routenplanung möglich Enthält Metadaten für jeden Verkehrsmittelmodus, die die Zusammenfassung der Schritte für diesen Verkehrsmittelmodus in `stepsOverview` enthalten (um diese Metadaten anzufordern, verwenden Sie die Feldmaske `routes.legs.stepsOverview`).
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 zu den von der Routes API zurückgegebenen Antworten finden Sie unter Antworten für ÖPNV-Routen 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 ÖPNV-Routenfelder anfordern.

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

Felder für die ÖPNV-Route anfordern

Fordern Sie die benötigten Felder für die Transitstrecke mit Feldmasken an. Die folgende Tabelle enthält einige vorgeschlagene Antworten für eine Transitstrecke 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 jeden Streckenabschnitt routes.legs.steps.startLocation
Endpunkt für jede Etappe routes.legs.steps.endLocation
Routen-Polylinie für jeden Schritt routes.legs.steps.polyline
Art des Transits für jeden Schritt 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 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 mit öffentlichen Verkehrsmitteln:

Aktivität 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 Zeit 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 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.

Ausweichrouten 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 Routen mit öffentlichen Verkehrsmitteln 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.

  • Gibt eine Feldmaske zurück, die die Transitdetails enthält:

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