Zum Inhalt springen

Abfahrts-/Ankunftsanzeiger

Der Abfahrts- und Ankunftsanzeiger ist als Open Service (API) verfügbar. Der Abfahrts- und Ankunftsanzeiger wird über den VDV431 – Dienst „StopEvent“ abgebildet.

(Departure/arrival Display)

Fachliche Beschreibung

Eine der Hauptanwendungen von Kundeninformation ist die Erstellung von Stationboard/Haltestellenanzeiger oder den Anzeigen der Aktivitäten an einem Punkt oder zu einem Punkt (Beispielsweise in der Anfahrt auf eine Haltestelle). Je nach Anwendungsfall sind Ankünfte oder Abfahrten interessant.

Mit dem Abfahrts- / Ankunftsanzeiger stellt diese Plattform die notwendigen Daten zur Verfügung.

Als Arbeitsbasis muss eine Haltestelle aus der Bahnhofsliste ausgewählt werden.

Es gilt zu beachten, dass hier keine Metabahnhöfe verwendet werden. D.h. als Beispiel, dass für den Point of Interest  Bern, Wankdorf folgende Haltestellen zu verwenden sind:

  • 8516161, Bern Wankdorf
  • 8590129, Bern Wankdorf, Bahnhof
  • 8595543, Bern Wankdorf, Bahnhof Nord

Wichtige Konzepte

  • Haltestellen: Hierfür können auch die Datensätze DiDok oder Haltestellen beigezogen werden.
  • Fahrten: Eine Fahrt ist die Beförderung von Kunden auf einem bestimmten Weg, einer bestimmten Fahrplan-Verbindung, mit einem bestimmten Verkehrsmittel, zu einer bestimmten Zeit, in eine bestimmte Richtung.
  • Fahrplan: Ein Fahrplan legt im öffentlichen Personennah- und -fernverkehr und im Schienengüterverkehr den Fahrtverlauf eines Verkehrsmittels fest. Dabei notwendige Angaben sind Zugnummer, Verkehrstage, Fahrweg, Ankunfts-, Abfahrts- und Durchfahrtszeiten an den Haltestellen sowie die zulässigen Geschwindigkeiten in den einzelnen Abschnitten des Fahrwegs.
  • Prognose: Die Prognose sind die in der Zukunft liegenden Verkehrszeiten eines Zuges, die ausgehende vom aktuellen Standort des Zuges berechnet werden. Dabei werden Konflikte und deren aktuell intendierten Regelungen in den nächsten x Minuten berücksichtigt. Den weiteren Verlauf der Prognose wird nach einer weniger aufwendigen Methode berechnet
  • Verkehrsmittel (VM): Entweder gleichbedeutend mit Fahrzeugen (Zug, Schiff, Tram, Bus) der verschiedenen Verkehrsträger oder im Sinne von «Verkehrssystem» gebraucht (öffentliches Verkehrsmittel usw.).
  • DateTime in Response: Es handelt sich immer um Zulu-Zeit (d.h. UTC). Es gilt im Sommer zwei Stunden und im Winter eine Stunde dazu zu zählen.

Technische Aspekte

API Explorer

Authorisierung und Open Services

Für den Zugriff auf diese API ist ein API-Key notwendig. Es kann über das Developer Portal bezogen werden.
Das Token muss im HTTP Header als „Authorization“ mitgeschickt werden.

URL für den Aufruf

HTTP POST auf https://api.opentransportdata.swiss/trias

(Achtung: Kein Schluss „/“)

Mit dem  Authorization Header und Content-Type= „text/XML“ oder „application/XML“

Authorization header

 

 

Beispiel einer Abfrage

Dieser Request wird als Body übermittelt.

Erläuterungen der Elemente des Requests

Der Request hat zwei zentrale Elemente:

Name Obligat? Beschreibung Beispiel
StopPointRef Ja(*) Ein Haltestellencode aus DiDok bzw. der Haltestellenliste  8507000
DepArrTime Nein enthält die Zeit für Ankunft oder Abfahrt (siehe auch Parameter StopEventType). Es können nur -1 bis +24h abgefragt werden. Fehlt das Element, so gilt die aktuelle Zeit. Hier ist keine Zulu-Zeit notwendig.

Sie Sekunden müssen angegeben werden.

 2016-06-27T13:34:00
Params Nein Die Parameter des Requests siehe untenstehende Tabelle

 

Die anderen Parameter sind:

Name Obligat? Beschreibung Beispiel
NumberOfResults Nein Default 40, Maximal 40 20
StopEventType Ja Es gibt zwei gültige Werte: departure/ arrival. departure
IncludePreviousCalls Nein Sollen die Halte vor der gesuchten Haltestelle mitgeliefert werden: true/false

Default: true

false
IncludeOnwardCalls Nein Sollen die Halte nach der gesuchten Haltestelle mitgeliefert werden: true/false

Default: true

false
IncludeRealtimeData Nein Sollen Echtzeitdaten mit übermittelt werden: true/false

Default: false

false

 

Ausschnitt und Erläuterung einer Response

Die Antwort hat folgenden grundsätzlichen Aufbau

 

Ein „StopEvent“ hat die folgenden Elemente:

  • PreviousCall: Halte vor dem aktuellen Halt
  • ThisCall: Aktueller Halt
  • OnwardCall: Nächste Halte
  • Service: Informationen zur Fahrt.

„MoreData“ ist immer false, da alle Daten geliefert werden.

Es wird immer die gesamte Fahrt geliefert vom Starthalt bis zur Endhaltestelle.

PreviousCall / This Call / OnwardCall

 

PreviousCall:

ThisCall

„EstimatedTime“ steht im Moment nur für „ThisCall“ zur Verfügung. Für die Abfrage der Echtzeitdaten der ganzen Fahrt kann der Dienst „TripInfoRequest“ mittels der „JourneyRef“ aus dem „Service“ -Element verwendet werden.

OnwardCall:

 

 

Name Obligat? Beschreibung Beispiel
StopPointRef Ja Ein Haltestellencode
TimetabledTime Ja  ist die Zeit gemäss Sollfahrplan. Achtung: Zuluzeit. 2016-08-18T02:54:00Z
Estimatedtime Nein Zeit gemäss Prognose. Achtung: „Estimatedtime“ steht nur für Fahrten zur Verfügung, die über Echtzeitdaten verfügen, und nur für „ThisCall“. „Estimatedtime“ kann gleich sein wie „Timetabledtime“, wenn keine Abweichung erwartet wird.

(Coming Soon) Bei Teilen der Fahrt („PreviousCall“) in der Vergangenheit handelt es sich um die letzte Prognose oder um Ist-Daten.

 2016-08-18T02:54:40Z
PlannedBay Nein Enthält das geplante Gleis gemäss Fahrplan.
EstimatedBay Nein Enthält das prognostizierte Gleis.  12A
StopSequenceNumber Ja Alle Halte sind durchnummeriert. 3

Service

Die Struktur „Service“ ist hier beschrieben: Service (VDV 431)

Fehler / Probleme

Die Antwort enthält eine „ErrorMessage“, wenn es Probleme mit der Ausführung des Requests gab:

screenshot-3

Anmerkungen

Die folgenden Angaben sind für externe Entwickler wichtig:

  • Haltestelle in Form einer DiDok-Nummer. D.h. das Parsen und Verarbeiten von DiDok- oder Bahnhofs-Datei ist notwendig. Die DiDok-Nummer kann über eine Suche nach Name oder auch nach Koordinaten erfolgen.
  • Es werden keine Metahaltestellen berücksichtigt.
  • Die Zeit und Ankunft oder Abfahrt können eingestellt werden.
  • Eine gezielte Anfrage nach einer Haltestelle (Synonym: Steig, Mast, Kante) ist nicht möglich.

Weiterführende Angaben


Wichtige Antworten

  1. heuel says:

    Was ist der HTTP Statuscode, falls die Quota überschritten wird? Gibt es weitere spezifische Statuscodes?

  2. Teilausfälle werden über den Teil der Fahrt abgebildet, den sie fahren. Ausfälle haben im<Service>-Element ein <Cancelled>true</Cancelled>. Neu angeordnete Züge ein <Unplanned>true</Unplanned>. Der direkte Zusammenhang, wenn ein Ersatzzug angeboten wird, ist in den übermittelten VDV-431-Daten nicht vorhanden.

  3. Ich habe das Problem gefunden. Offenbar hat der Request-Parser ein Problem mit Whitespaces im XML. Nachdem ich diese entfernt hatte, funktioniert der Request.

Diskussion fortsetzen auf disc.opentransportdata.swiss

31 more replies