OJPTripInfoRequest
Mit dem TripInfoRequest können weitere Details zu einer “Journey” (Fahrt) abgefragt werden.
API-Explorer
Sie können eigene Requests ausprobieren – direkter Link zum API-Explorer.
Request
Die zentrale Information für den TripInfoRequest ist ein ojp:JourneyRef mit ojp:OperatingDayRef – also eine Referenz auf eine ganz bestimmte Journey am einem Kalendertag. Die JourneyRef muss der Response auf eine andere Anfrage (z.B. TripRequest oder StopEventRequest) entnommen werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?xml version="1.0" encoding="UTF-8"?> <OJP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.siri.org.uk/siri" version="1.0" xmlns:ojp="http://www.vdv.de/ojp" xsi:schemaLocation="http://www.siri.org.uk/siri ../ojp-xsd-v1.0/OJP.xsd"> <OJPRequest> <ServiceRequest> <RequestTimestamp>2020-01-20T12:00:00Z</RequestTimestamp> <RequestorRef>IRMA</RequestorRef> <ojp:OJPTripInfoRequest> <RequestTimestamp>2020-01-20T12:00:00Z</RequestTimestamp> <MessageIdentifier>756</MessageIdentifier> <ojp:JourneyRef>qv1:91011::H:j20:500</ojp:JourneyRef> <ojp:OperatingDayRef>2020-01-20</ojp:OperatingDayRef> <ojp:Params> <ojp:IncludeCalls>true</ojp:IncludeCalls> <ojp:IncludePosition>false</ojp:IncludePosition> <ojp:IncludeService>true</ojp:IncludeService> <ojp:IncludeTrackSections>true</ojp:IncludeTrackSections> <ojp:IncludeTrackProjection>true</ojp:IncludeTrackProjection> </ojp:Params> </ojp:OJPTripInfoRequest> </ServiceRequest> </OJPRequest> </OJP> |
Element | Kardinalität | Beschreibung | Beispiel | ||
RequestTimestamp | 1:1 | Timestamp der Anfrage. Bevorzugt in Zulu Time. |
|
||
MessageIdentifier | 0:1 | Der Identifier der Meldung. Bevorzugt stetig steigend. |
|
||
JourneyRef | 0:1 | Referenz auf die Fahrt.
Die Referenz kann über einen TripRequest oder StopEventRequest ermittelt werden. |
|
||
OperatingDayRef | 0:1 | Im Format YYYY-MM-DD |
|
||
siri:VehicleRef | 0:1 | n/a
Dieses Feature steht nicht zur Verfügung. |
n/a | ||
TimeOfOperation | 0:1 | n/a
Dieses Feature steht nicht zur Verfügung. |
n/a | ||
Params | 0:1 | Weitere Parameter für die Anfrage | |||
Params/UseTimetableDataOnly | 0:1 | Soll auf die Echtzeit verzichtet werden? Default is false. | |||
Params/IncludeCalls | 0:1 | Sollen die “Calls” (Zwischenhalte) eingefügt werden? Default ist true. | |||
Params/IncludePosition | 0:1 | Soll die aktuelle Position des Zugs eingefügt werden?
Dieses Feature steht nicht zur Verfügung. |
n/a | ||
Params/IncludeService | 0:1 | Soll die Service-Information eingfügt werden (LineRef, Mode, OperatorRef,..)? Default ist true. | |||
Params/IncludeTrackSections | 0:1 | Sollen geographische Infos der Route eingefügt werden? Default ist false. | |||
Params/IncludeTrackProjection | 0:1 | Sollen Koordinatenprojektonen mit übermittelt werden?
Dieses Feature ist angedacht. |
Response
Zuoberst (vom eigentlichen Inhalt) wird TripInfoResponseContext geliefert, vor allem Informationen zu den verwendeten “Places” – siehe genauere Beschreibung in OJPTripRequest
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<ojp:TripInfoResponseContext> <ojp:Places> <ojp:Location> <ojp:StopPlace> <ojp:StopPlaceRef>8503000</ojp:StopPlaceRef> <ojp:StopPlaceName> <ojp:Text>Zürich HB</ojp:Text> </ojp:StopPlaceName> <ojp:PrivateCode> <ojp:System>EFA</ojp:System> <ojp:Value>104014:0:8</ojp:Value> </ojp:PrivateCode> <ojp:TopographicPlaceRef>23026261:27</ojp:TopographicPlaceRef> </ojp:StopPlace> <ojp:LocationName> <ojp:Text xml:lang="de">Zürich HB</ojp:Text> </ojp:LocationName> <ojp:GeoPosition> <siri:Longitude>8.54021</siri:Longitude> <siri:Latitude>47.37818</siri:Latitude> </ojp:GeoPosition> </ojp:Location> <!-- ... --> </ojp:Places> </ojp:TripInfoResponseContext> |
TripInfoResult
Achtung: Je nach gesetzten Parametern kommen die unten aufgeführten Teile in der Antwort vor oder nicht. Deshalb gegebenenfalls die Parameter im Request überprüfen, um gewisse Teile (nicht) zu erhalten.
Beispiel einer kompletten Antwort: TripInfoRequest_example_response
Nach dem Kontext kommt die Journey selbst; zuerst alle Halte mit PreviousCalls (vorangehende Halte) und OnwardCalls (folgende Halte). Dabei können mehr Halte enthalten sein als im TripRequest, welcher zur Ermittlung der JourneyRef gemacht wurde, da im TripInfoRequest jeweils die ganze Fahrt geliefert wird.
Falls im Request nicht mit UseTimetableDataOnly=true die Echtzeit ausgschlossen wurde, kommen (falls vorhanden) zusätzlich zum fahrplanmässigen Zeit und Gleis von Abfahrt/Ankunft (TimetabledTime, Planned Quay) auch Echtzeitdaten (EstimatedTime, EstimatedQuay).
Beispiel: Bei einem TripRequest von Bern nach Zürich könnte im entsprechenden TripInfoRequest eine Fahrt von Genf nach St. Gallen geliefert werden, wovon der Abschnitt Bern – Zürich eine Teilmenge ist.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
<ojp:TripInfoResult> <ojp:PreviousCall> <siri:StopPointRef>8503000</siri:StopPointRef> <ojp:StopPointName> <ojp:Text>Zürich HB</ojp:Text> </ojp:StopPointName> <ojp:PlannedQuay> <ojp:Text xml:lang="de">8</ojp:Text> </ojp:PlannedQuay> <ojp:EstimatedQuay> <ojp:Text xml:lang="de">9</ojp:Text> </ojp:EstimatedQuay> <ojp:ServiceDeparture> <ojp:TimetabledTime>2020-07-13T13:32:00Z</ojp:TimetabledTime> <ojp:EstimatedTime>2020-07-13T13:32:00Z</ojp:EstimatedTime> </ojp:ServiceDeparture> <ojp:Order>1</ojp:Order> </ojp:PreviousCall> <ojp:PreviousCall> <siri:StopPointRef>8502204</siri:StopPointRef> <ojp:StopPointName> <ojp:Text>Zug</ojp:Text> </ojp:StopPointName> <ojp:PlannedQuay> <ojp:Text xml:lang="de">4</ojp:Text> </ojp:PlannedQuay> <ojp:ServiceArrival> <ojp:TimetabledTime>2020-07-13T13:56:00Z</ojp:TimetabledTime> <ojp:EstimatedTime>2020-07-13T13:57:00Z</ojp:EstimatedTime> </ojp:ServiceArrival> <ojp:ServiceDeparture> <ojp:TimetabledTime>2020-07-13T13:58:00Z</ojp:TimetabledTime> <ojp:EstimatedTime>2020-07-13T13:59:00Z</ojp:EstimatedTime> </ojp:ServiceDeparture> <ojp:Order>2</ojp:Order> </ojp:PreviousCall> <!-- ... --> <ojp:OnwardCall> <siri:StopPointRef>8505300</siri:StopPointRef> <ojp:StopPointName> <ojp:Text>Lugano</ojp:Text> </ojp:StopPointName> <ojp:PlannedQuay> <ojp:Text xml:lang="de">3</ojp:Text> </ojp:PlannedQuay> <ojp:ServiceArrival> <ojp:TimetabledTime>2020-07-13T15:56:00Z</ojp:TimetabledTime> <ojp:EstimatedTime>2020-07-13T15:52:00Z</ojp:EstimatedTime> </ojp:ServiceArrival> <ojp:Order>8</ojp:Order> </ojp:OnwardCall> <!-- ... --> </ojp:TripInfoResult> |
Anschliessend die Informationen zu Service: LineRef, Mode (Verkersmittelart), OperatorRef, etc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<ojp:TripInfoResult> <!-- ... --> <ojp:Service> <ojp:OperatingDayRef>2020-07-13</ojp:OperatingDayRef> <ojp:JourneyRef>ojp:91002:F:R:j20:205</ojp:JourneyRef> <siri:LineRef>ojp:91002:F</siri:LineRef> <siri:DirectionRef>R</siri:DirectionRef> <ojp:Mode> <ojp:PtMode>rail</ojp:PtMode> <siri:RailSubmode>local</siri:RailSubmode> <ojp:Name> <ojp:Text xml:lang="de">Zug</ojp:Text> </ojp:Name> <ojp:ShortName> <ojp:Text xml:lang="de">IC</ojp:Text> </ojp:ShortName> </ojp:Mode> <ojp:PublishedLineName> <ojp:Text>2</ojp:Text> </ojp:PublishedLineName> <ojp:OperatorRef>ojp:11</ojp:OperatorRef> <ojp:OriginStopPointRef>8503000</ojp:OriginStopPointRef> <ojp:OriginText> <ojp:Text xml:lang="de">Zürich HB</ojp:Text> </ojp:OriginText> <ojp:DestinationStopPointRef>8505300</ojp:DestinationStopPointRef> <ojp:DestinationText> <ojp:Text xml:lang="de">Lugano</ojp:Text> </ojp:DestinationText> </ojp:Service> <!-- ... --> </ojp:TripInfoResult> |
Anschliessend werden in JourneyTrack (Parameter in der Anfrage: IncludeTrackSections) geographische Informationen über die Journey geliefert.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<ojp:TripInfoResult> <!-- ... --> <ojp:JourneyTrack> <ojp:TrackSection> <ojp:TrackStart> <siri:StopPointRef>8503000</siri:StopPointRef> <ojp:LocationName> <ojp:Text xml:lang="de">Zürich HB</ojp:Text> </ojp:LocationName> </ojp:TrackStart> <ojp:TrackEnd> <siri:StopPointRef>8505307</siri:StopPointRef> <ojp:LocationName> <ojp:Text xml:lang="de">Chiasso</ojp:Text> </ojp:LocationName> </ojp:TrackEnd> <ojp:Length>220041</ojp:Length> </ojp:TrackSection> </ojp:JourneyTrack> </ojp:TripInfoResult> |
Zuletzt kommt in der Extension aktuell als einzige Info die publizierte Nummer (im Beispiel unten “319”, weil es der EC 319 ist)
1 2 3 4 5 6 7 8 9 10 11 |
<ojp:TripInfoResult> <!-- ... --> <ojp:Extension> <ojp:TransportTypeName> <ojp:Text xml:lang="de"></ojp:Text> </ojp:TransportTypeName> <ojp:PublishedJourneyNumber> <ojp:Text xml:lang="de">319</ojp:Text> </ojp:PublishedJourneyNumber> </ojp:Extension> </ojp:TripInfoResult> |