- Einleitung
- Fachliche Beschreibung
- Technische Beschreibung
- Zugang
- Unterstützte Elemente
- Releasenotes
- Release PROD: 27.6.2024
- Release PROD: 27.5.2024
- Release TEST, INT, PROD: 07.5.2024
- Release TEST, INT, PROD: 26.4.2024
- Release TEST, PROD: 25.4.2024
- Release INT 19.4.2024
- Release INT 21.3.2024
- Release INT 20.3.2024
- Release INT 7.3.2024
- Release INT 6.3.2024
- Release INT 22.2.2024
- Release INT / PROD 19.2.2024
- Release INT 23.1.2024
- Release INT 17.1.2024
- Release INT 16.1.2024 11:00
- Weiterführende Angaben
Einleitung
Mit OJP 2.0 wird der CEN-Standard erweitert und namentlich im Bereich multimodale Mobilität verstärkt. Weitere Dienste wurden definiert. Diese Seite beschreibt den aktuellen Umsetzungsstand für OJP 2.0, für diejenigen, die sehen wollen, was im Moment passiert und sich frühzeitig damit auseinander setzen wollen. Das System ist NICHT produktiv, sondern arbeitet nur auf der Integrationsumgebung. Das heisst auch, dass es nicht immer zur Verfügung steht.
Es wird vorausgesetzt, dass die bestehende OJP2020 verstanden ist.
Fachliche Beschreibung
wird ergänzt.
Technische Beschreibung
Dieses Kapitel beschreibt die Zugänge und den aktuellen Entwicklungsstand.
Zugang
OJP 2.0 Integration: https://odpch-api.clients.liip.ch/ojp20-beta
OJP 2.0 Produktion : https://api.opentransportdata.swiss/ojp20
API-Schlüssel im Self-Service: Developer Dashboard | Open-Data-Plattform Mobilität Schweiz (opentransportdata.swiss)
OJP Demonstrator based on OJP 2.0 (not always on the latest version): https://tools.odpch.ch/ojp-demo-v2
TIR – trip information service
TR – trip service
LIR – location information service
SER – stop event service
Unterstützte Elemente
Nachfolgend eine Dokumentation der unterstützten Elemente in OJP 2.0 beim go-live im Februar 2024. Weitere Funktionen werden laufend dazukommen.
Grundsätzlich werden alle Elemente der Coobook Seite zu OJP 1.0 unterstützt. In der nachfolgenden Dokumentation sind Elemente gekennzeichnet,
welche von der Cookbook Seite abweichen und (noch) nicht unterstützt werden.
LIR
Link https://opentransportdata.swiss/de/cookbook/ojplocationinformationrequest/
Nachfolgende Elemente werden im Vergleich zu OJP1.0 noch nicht unterstützt:
Element | Status |
<Restrictions>/<Type> | Es gibt die folgenden Typen:
|
<Restrictions>/<PtModes> | Filterung nach PTModes in LIR nicht unterstützt.
Paintpoint Prio 2 |
<Restrictions>/<PointOfInteresFilter> | nicht unterstützt |
TIR
Link https://opentransportdata.swiss/de/cookbook/ojptripinforequest/
In OJP2.0 wird bereits alles gemäss Dokumentation unterstützt.
SER
Link https://opentransportdata.swiss/de/cookbook/ojpstopeventrequest/
Nachfolgende Elemente werden im Vergleich zu OJP1.0 noch nicht unterstützt:
Element | Status |
<Restrictions>/<Type> | Es gibt die folgenden Typen:
|
<IndividualTransportOptions> | nicht unterstützt. IndividualTransport Options wie walk, cycle, taxi usw. werden in OJP2.0 noch nicht unterstützt |
<Params> / <OperatorFilter> | nicht unterstützt |
<Params> / <IncludeOperatingDays> | OperatingDay der Fahrt wird unabhängig vom Parameter immer ausgegeben |
TR
Link https://opentransportdata.swiss/de/cookbook/ojptriprequest/
Nachfolgende Elemente werden im Vergleich zu OJP1.0 noch nicht unterstützt:
Element | Status |
Origin/Destination PlaceRef/PointOfInterestRef |
nicht unterstützt |
Origin/Destination PlaceRef/AddressRef |
nicht unterstützt
Paintpoint Prio 1: Koordinaten aus Adresse rausfinden, dann TR mit GeoPosition machen |
Origin/Destination TimeAllowance |
nicht unterstützt |
<Params> / IndividualTransportOptions | nicht unterstützt |
<Params> / OptimisationMethod | fastest, least walking, etc
nicht unterstützt |
<Params> / ItModesToCover | Multimodalität.
nicht unterstützt |
<Params> / IncludeTurnDescription | Abbiegehinweise z.Bsp. beim Fusswegrouting “nach 50m nach rechts”
nicht unterstützt. |
Pain points:
- ResponseContext mit Koordinaten fehlen noch.
Releasenotes
For an overview of issues (bugs, features) related to the OJP 2.0 backend o, please refer to the following information in our github repository:
OJP 2.0 Backend Issues (ordered by sprints)
OJP 2.0 Backend Issues Board (Kanban style)
- Row Release Candidate: Features released on TEST and INT
- Row Done: Feature released on PROD
Release PROD: 27.6.2024
Release PROD: 27.5.2024
Multiple bugs/issues fixed:
- LIR “Bern S” + Type=stop return entries in GR
- LIR Name = “Genova” + Restriction.Stop gives 500 error
- LIR should conform to XSD
- LIR Name search with “Bern S” and Type=address doesnt return any results
- LIR request with both filters “stops” and “address” only gives stops back
- LIR “Ba” + Type=stop return no entries
- TR – Footpath leg returned as TimedLeg
Release TEST, INT, PROD: 07.5.2024
- Fix LIR with address filter. The filter ist now correctly taking into account.
- Fix LIR adress response. Response now contains all relevant information
Release TEST, INT, PROD: 26.4.2024
- The issues with the TripRequest are resolved for all systems.
Release TEST, PROD: 25.4.2024
- PROD and TEST are now on the same software version as INT. We have just noticed problems with the TripRequest on PROD and TEST, which did not occur on INT. We are working on this problem with high priority.
- On the TEST system, some SLOIDS were supplied for the followings stops:
- Emmenmatt: ch:1:sloid:8206
- Langenthal: ch:1:sloid:8100
- Kerzers ch:1:sloid:4400
- Gümmenen ch:1:sloid:4486
Request:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?xml version="1.0" encoding="UTF-8"?> <OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp OJP_changes_for_v1.1/OJP.xsd"> <OJPRequest> <siri:ServiceRequest> <siri:RequestTimestamp>2024-04-25T12:49:16.230Z</siri:RequestTimestamp> <siri:RequestorRef>MENTZRegTest</siri:RequestorRef> <OJPLocationInformationRequest> <siri:RequestTimestamp>2024-04-25T12:49:16.230Z</siri:RequestTimestamp> <siri:MessageIdentifier>LIR-1a</siri:MessageIdentifier> <InitialInput> <Name>Emmenmatt</Name> </InitialInput> <Restrictions> <Type>stop</Type> <NumberOfResults>1</NumberOfResults> </Restrictions> </OJPLocationInformationRequest> </siri:ServiceRequest> </OJPRequest> </OJP> |
Response (Snippet):
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 |
... <PlaceResult> <Place> <StopPlace> <StopPlaceRef>ch:1:sloid:8206</StopPlaceRef> <StopPlaceName> <Text xml:lang="de">Emmenmatt</Text> </StopPlaceName> <PrivateCode> <System>EFA</System> <Value>111812</Value> </PrivateCode> <TopographicPlaceRef>23006903:6</TopographicPlaceRef> </StopPlace> <Name> <Text xml:lang="de">Emmenmatt (Lauperswil)</Text> </Name> <GeoPosition> <siri:Longitude>7.7473</siri:Longitude> <siri:Latitude>46.94816</siri:Latitude> </GeoPosition> </Place> <Complete>true</Complete> <Probability>1</Probability> </PlaceResult> ... |
Release INT 19.4.2024
- Change in the TR for the Parameters NumberOfResultsBefore and NumberOfResultsAfter: now both elements are optional. Before if one of them was used, the other has to be in the request as well.
1 2 3 |
<Params> <NumberOfResultsAfter>2</NumberOfResultsAfter> </Params> |
- StopEventRequest: fix timezone problem. Response didn’t deliver the requested departure or arrival time,
- TripInfoRequest: fix an issue, where requests using a SwissJourneyID couldn’t be properly parsed.
Release INT 21.3.2024
- LIR response using of a Request using “InitialInput” now contains the PtMode and Submode as well. Before, it only worked for a LIR Request using coordinates. Example of a LIR using “InitialInput” Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<Name> <Text xml:lang="de">Bern, Saali (Bern)</Text> </Name> <GeoPosition> <siri:Longitude>7.48558</siri:Longitude> <siri:Latitude>46.93774</siri:Latitude> </GeoPosition> <Mode> <PtMode>tram</PtMode> <siri:TramSubmode>cityTram</siri:TramSubmode> </Mode> <Mode> <PtMode>bus</PtMode> <siri:BusSubmode>localBus</siri:BusSubmode> </Mode> </Place> |
Release INT 20.3.2024
- encoding of the Response is now in UTF-8 (before: UTF-16)
- fix an issue in the SER, where identical trips are included multiple times in the response
- SER response contains only trips related to the stop. Trips from stops that can be reached on foot are no longer included in the answer.
Example SER for “Goppenstein, Bahnhof” before:
Example SER for “Goppenstein, Bahnhof” after the change:
Release INT 7.3.2024
- support of ferry and cartransport (Autoverlad) in the SER PT (PublicTransport) Request. Example:
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 |
<?xml version="1.0" encoding="UTF-8"?> <OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp OJP_changes_for_v1.1/OJP.xsd"> <OJPRequest> <siri:ServiceRequest> <siri:RequestTimestamp>2024-03-06T14:45:48.974Z</siri:RequestTimestamp> <siri:RequestorRef>MENTZRegTest</siri:RequestorRef> <OJPStopEventRequest> <siri:RequestTimestamp>2024-03-06T14:45:48.974Z</siri:RequestTimestamp> <siri:MessageIdentifier>SER-1a1</siri:MessageIdentifier> <Location> <PlaceRef> <siri:StopPointRef>8519655</siri:StopPointRef> <Name> <Text>Goppenstein, Autoverlad</Text> </Name> </PlaceRef> <DepArrTime>2024-12-13T11:00:00Z</DepArrTime> </Location> <Params> <IncludeAllRestrictedLines>true</IncludeAllRestrictedLines> <NumberOfResults>5</NumberOfResults> <StopEventType>both</StopEventType> </Params> </OJPStopEventRequest> </siri:ServiceRequest> </OJPRequest> </OJP> |
- support of ferry and cartransport (Autoverlad) in the TR PT (PublicTransport) Request. Example:
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 |
<?xml version="1.0" encoding="UTF-8"?> <OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp OJP_changes_for_v1.1/OJP.xsd"> <OJPRequest> <siri:ServiceRequest> <siri:RequestTimestamp>2024-03-06T09:33:08.741Z</siri:RequestTimestamp> <siri:RequestorRef>MENTZRegTest</siri:RequestorRef> <OJPTripRequest> <siri:RequestTimestamp>2024-03-06T09:33:08.741Z</siri:RequestTimestamp> <siri:MessageIdentifier>ATV</siri:MessageIdentifier> <Origin> <PlaceRef> <siri:StopPointRef>8511171</siri:StopPointRef> <Name> <Text>Kandersteg Autoverlad</Text> </Name> </PlaceRef> <DepArrTime>2024-12-13T11:00:00Z</DepArrTime> </Origin> <Destination> <PlaceRef> <siri:StopPointRef>8519655</siri:StopPointRef> <Name> <Text>Goppenstein Autoverlad</Text> </Name> </PlaceRef> </Destination> <Params> <NumberOfResults>1</NumberOfResults> <IncludeAllRestrictedLines>true</IncludeAllRestrictedLines> <IncludeTrackSections>false</IncludeTrackSections> <IncludeLegProjection>false</IncludeLegProjection> <IncludeIntermediateStops>true</IncludeIntermediateStops> </Params> </OJPTripRequest> </siri:ServiceRequest> </OJPRequest> </OJP> |
- Please note: a TR using IT (IndividualTransport, for example own car in combination with ferry) is not supported yet. But we are working on it
Release INT 6.3.2024
- TR response contains accessibility Informations. Example:
1 2 3 4 5 6 7 8 |
<LegAlight> <siri:StopPointRef>8500490</siri:StopPointRef> <StopPointName> <Text xml:lang="de">Langendorf, Chutz</Text> </StopPointName> <NameSuffix> <Text xml:lang="de">PLATFORM_ACCESS_WITH_ASSISTANCE</Text> </NameSuffix> |
- TIR response contains accessibility Informations. Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<ojp:OnwardCall> <siri:StopPointRef>8500456</siri:StopPointRef> <ojp:StopPointName> <ojp:Text xml:lang="de">Oberdorf SO, Endhalt</ojp:Text> </ojp:StopPointName> <ojp:NameSuffix> <ojp:Text xml:lang="de">PLATFORM_ACCESS_WITHOUT_ASSISTANCE</ojp:Text> </ojp:NameSuffix> <ojp:ServiceDeparture> <ojp:TimetabledTime>2024-12-13T04:54:00Z</ojp:TimetabledTime> </ojp:ServiceDeparture> <ojp:Order>1</ojp:Order> </ojp:OnwardCall> |
- possible values for accessibility
- Autonomie / PLATFORM_ACCESS_WITHOUT_ASSISTANCE
- Rampeneinsatz / PLATFORM_ACCESS_WITH_ASSISTANCE
- Voranmeldung / PLATFORM_ACCESS_WITH_ASSISTANCE_WHEN_NOTIFIED
- Shuttle / ALTERNATIVE_TRANSPORT
- kein Zugang / PLATFORM_NOT_WHEELCHAIR_ACCESSIBLE
- keine Info / NO_DATA
Release INT 22.2.2024
New Release on the INT System
- Support of LineFilter in TR
- Support of ModeAndModeOfOperatorFilter in TR
- Support of ToporaphicPlaceRef in TR and SER
- Support of PtModeFilter in SER
- Support of IncludeRealtime Parameter in SER (until now, Realtime was always been activated, can now be deactivated)
- Bugfix in SER, multiple identical trips in SER Response
- Bugfix in LIR, where Requests with Address and GeoPosition didn’t work
Release INT / PROD 19.2.2024
New Release on the INT and PROD System
- Support of IncludeCalls Parameter in the TIR
- Support of IncludeService Parameter in the TIR
- Support of IncludeTrackSection Parameter in the TR
- Support of IncludeLegProjection Parameter in the TR
- Changed the Timezone: all Responses contains UTC time format (not local time anymore). This change is required by the migration of the OJP system from Windows to Linux. Example
1<StartTime>2024-12-13T11:06:00Z</StartTime>
Release INT 23.1.2024
- Support of via functionality in TripRequest
12345678<Via><ViaPoint><StopPlaceRef>8506000</StopPlaceRef><Name><Text>Winterthur</Text></Name></ViaPoint></Via> - Support of NotVia functionality in TripRequest
123<NotVia><siri:StopPointRef>8506000</siri:StopPointRef></NotVia>
- Support of LineFilter in TripRequest and StopEventRequest
123456<LineFilter><Line><siri:LineRef>ojp:92007:D</siri:LineRef></Line><Exclude>true</Exclude></LineFilter> - Support of UseRealtimeData in TripRequest and StopEventRequest
1<UseRealtimeData>none</UseRealtimeData>
Release INT 17.1.2024
- Correction of time zones. Localtime is now displayed in the response for all times. Example:
1 |
<TimetabledTime>2024-01-17T12:44:00+01:00</TimetabledTime> |
- Implementation of the “IntermediateStops” function. The following request parameter is now taken into account:
1 |
<IncludeIntermediateStops>true</IncludeIntermediateStops> |
Implementation to include the Attritube in the TR Response. Example
1 2 3 4 5 6 |
<Attribute> <UserText> <Text xml:lang="de">Platzreservierung möglich</Text> </UserText> <Code>A___R</Code> </Attribute> |
- fixes in the SER Responses:
- new element <Id>
- new element <Order>
- fixes in the TIR Response
- new element <OperatingDayRef>
- new element <ProductCategory> / <ShortName>
- correction of element <siri:OperatorRef>
- ew element for Origins and Destination. Example
12345678<OriginStopPointRef>8596007</OriginStopPointRef><DestinationStopPointRef>8576182</DestinationStopPointRef><OriginText><Text xml:lang="de">Schlieren, Geissweid</Text></OriginText><DestinationText><Text xml:lang="de">Zürich Tiefenbrunnen, Bahnhof</Text></DestinationText>
- fixes in the TR Response
- new Element <ID>
- correction <siri:LineRef>, output now without direction
- new element <ProductCategory> / <ShortName>
- correction of element <siri:OperatorRef>
Release INT 16.1.2024 11:00
- LIR Unterstützung StopPlaceRef. Beispiel Request:
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="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" version="1.1-dev" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp ../../../../OneDrive/01_Dokumente/OJP%20OpenJourneyPlanner/OJP_changes_for_v1.1/OJP.xsd"> <OJPRequest> <siri:ServiceRequest> <siri:RequestTimestamp>2024-01-16T10:01:52.518Z</siri:RequestTimestamp> <siri:RequestorRef>MENTZRegTest</siri:RequestorRef> <OJPLocationInformationRequest> <siri:RequestTimestamp>2024-01-16T10:01:52.518Z</siri:RequestTimestamp> <siri:MessageIdentifier>LIR-1e</siri:MessageIdentifier> <PlaceRef> <siri:StopPointRef>8530813</siri:StopPointRef> <Name> <Text>Zürich Kreuzplatz</Text> </Name> </PlaceRef> <Restrictions> <Type>stop</Type> <NumberOfResults>10</NumberOfResults> </Restrictions> </OJPLocationInformationRequest> </siri:ServiceRequest> </OJPRequest> </OJP> |
- TR Unterstützung StopPlaceRef. Beispiel Request:
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 |
<?xml version="1.0" encoding="UTF-8"?> <OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" version="1.1-dev" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp ../../../../OneDrive/01_Dokumente/OJP%20OpenJourneyPlanner/OJP_changes_for_v1.1/OJP.xsd"> <OJPRequest> <siri:ServiceRequest> <siri:RequestTimestamp>2024-01-16T10:02:42.181Z</siri:RequestTimestamp> <siri:RequestorRef>MENTZRegTest</siri:RequestorRef> <OJPTripRequest> <siri:RequestTimestamp>2024-01-16T10:02:42.181Z</siri:RequestTimestamp> <siri:MessageIdentifier>TR-1a1</siri:MessageIdentifier> <Origin> <PlaceRef> <StopPlaceRef>8506302</StopPlaceRef> <Name> <Text>Test</Text> </Name> </PlaceRef> <DepArrTime>2024-12-13T11:00:00Z</DepArrTime> </Origin> <Destination> <PlaceRef> <StopPlaceRef>8505000</StopPlaceRef> <Name> <Text>Luzern</Text> </Name> </PlaceRef> </Destination> <Params> <NumberOfResults>5</NumberOfResults> </Params> </OJPTripRequest> </siri:ServiceRequest> </OJPRequest> </OJP> |
Weiterführende Angaben
wird ergänzt.