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
Legen Sie Start- und Zielort fest.
Legen Sie die Mobilitätsform auf „Öffentliche Verkehrsmittel“ fest:
travelMode: "TRANSIT"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.
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: |
| 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:
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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }