Une nouvelle version de GTFS/TRIAS a été mise en production en même temps que l’OJP.
Réactions/feedbacks/questions
Le projet Trello suivant sert aux questions et aux remarques.
https://trello.com/b/jiIZwszF/open-journey-planner
Invitations sinon via opendata@sbb.ch
GTFS – RT
Il existe un nouveau GTFS qui doit être utilisé pour le GTFS-RT. Le dataset s’intitule GTFS2020: https://opentransportdata.swiss/fr/dataset/timetable-2020-gtfs2020
1x par semaine, chaque mercredi à 9h10, les données GTFS sont téléchargées sur le serveur FTP et sont alors disponibles.
La valeur des route_id et des trip_id pour la même ligne/trajet a changé par rapport aux anciennes versions, car nous avons adapté la modélisation des données dans le nouveau système OJP DIVA. Comme les stop_id proviennent de DIDOK, ils sont bien sûr identiques dans les deux systèmes (ODP1.0 et ODP2.0/OJP).
API: https://api.opentransportdata.swiss/gtfsrt2020
Test-Key: 57c5dbbbf1fe4d000100001842c323fa9ff44fbba0b9b925f0c052d1
Qu’est-ce qui a changét:
- Désormais, les arrêts qui ne sont plus desservis sont transmis dans TripUpdate avec “scheduled_relationship” : “skipped”.
- Les valeurs de route_id et trip_id ont changé parce que les données sont modélisées différemment.
- route_type 907 n’est plus disponible dans la nouvelle norme GTFS. Les 907 sont mappés à 1300.
- Dans le nouveau GTFS, seule la classe est indiquée dans route_desc. Cela correspond à V.580. Nous allons maintenant modifier le sous-mode pour qu’il contienne les mêmes informations que jusqu’à présent. De même, le route_type est encore adapté. (KNOWN ISSUE, devrait être corrigé d’ici la mi-octobre).
- Les pseudo-arrêts (les arrêts comme le tunnel de base du Lötschberg) sont inclus dans Static et RT. Pour l’instant, malheureusement, avec le mauvais type. (KNOWN ISSUE). Comme solution de contournement, ces arrêts devraient toujours être filtrés (id<1000).
GTFS-RT peut également être obtenu au format JSON. Toutefois, cela est davantage destiné à être testé qu’à être utilisé en production.
- https://api.opentransportdata.swiss/gtfsrt2020/ fournit les données au format binaire Protobuf. Il doit être utilisé par les applications de production.
- https://api.opentransportdata.swiss/gtfsrt2020/?FORMAT=json fournit les données en JSON. Cela ne doit être utilisé que pour visualiser les données et à des fins de test (par exemple pour l’analyse des données), et non par des applications de production. (FORMAT est sensible à la case).
TRIAS
La nouvelle interface (TRIAS2020) est documentée dans les pages suivantes:
- LocationInformationRequest
- Affichage des départs/arrivées
- TripRequest
- Prévisions relatives aux trajets
LocationInformationRequest a été ajouté avec TRIAS2020.
Nouvelle API: https://api.opentransportdata.swiss/trias2020
Test-Key: 57c5dbbbf1fe4d000100001842c323fa9ff44fbba0b9b925f0c052d1
Qu’est-ce qui a changé:
- LocationInformationRequest/Response est désormais disponible
- Pour TripRequest/Response, les liaisons pour lesquelles il faut changer de train sont désormais également indiquées. Il en résulte qu’il y a plusieurs Leg dans un trip. Il y a aussi plus de types de Legs.
- Les localisations du schéma doivent être indiquées dans l’en-tête.
- Désormais, les éléments TRIAS sont transmis avec le NamespacePréfixe “trias :” et “siri :”. Si vous utilisez une bibliothèque pour l’analyse syntaxique, cela devrait continuer à fonctionner sans problème.
- Les noms des lignes ont changé.
Exemple TripRequest
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 |
<?xml version="1.0" encoding="UTF-8"?> <Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/trias ../trias-xsd-v1.1/Trias.xsd"> <ServiceRequest> <siri:RequestTimestamp>2020-04-24T12:00:00Z</siri:RequestTimestamp> <siri:RequestorRef>IRMA</siri:RequestorRef> <RequestPayload> <TripRequest> <Origin> <LocationRef> <StopPlaceRef>8530813</StopPlaceRef> <LocationName> <Text>Zürich Kreuzplatz</Text> </LocationName> </LocationRef> <DepArrTime>2020-04-24T12:00:00Z</DepArrTime> </Origin> <Destination> <LocationRef> <StopPlaceRef>8503003</StopPlaceRef> <LocationName> <Text>Zürich Stadelhofen</Text> </LocationName> </LocationRef> </Destination> <Params> <NumberOfResults>10</NumberOfResults> <IncludeIntermediateStops>true</IncludeIntermediateStops> </Params> </TripRequest> </RequestPayload> </ServiceRequest> </Trias> |
Exemple TripRequest 2
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
<?xml version="1.0" encoding="UTF-8"?> <Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/trias ../trias-xsd-v1.1/Trias.xsd"> <ServiceRequest> <siri:RequestTimestamp>2020-04-24T12:00:00Z</siri:RequestTimestamp> <siri:RequestorRef>IRMA</siri:RequestorRef> <RequestPayload> <TripRequest> <Origin> <LocationRef> <GeoPosition> <Longitude>8.484003</Longitude> <Latitude>47.386135</Latitude> </GeoPosition> <LocationName> <Text>Altstetten</Text> </LocationName> </LocationRef> <DepArrTime>2020-04-24T12:00:00Z</DepArrTime> <IndividualTransportOptions> <Mode>walk</Mode> <MaxDistance>10000</MaxDistance> <MaxDuration>PT2H</MaxDuration> <MinDistance>1</MinDistance> <MinDuration>PT1S</MinDuration> <Speed>1000</Speed> </IndividualTransportOptions> </Origin> <Destination> <LocationRef> <GeoPosition> <Longitude>8.560054</Longitude> <Latitude>47.364618</Latitude> </GeoPosition> <LocationName> <Text>Hirslanden</Text> </LocationName> </LocationRef> <IndividualTransportOptions> <Mode>walk</Mode> <MaxDistance>10000</MaxDistance> <MaxDuration>PT2H</MaxDuration> <MinDistance>1</MinDistance> <MinDuration>PT1S</MinDuration> <Speed>1000</Speed> </IndividualTransportOptions> </Destination> <Via> <ViaPoint> <LocalityRef>23026230:17</LocalityRef> <LocationName> <Text>Winterthur</Text> </LocationName> </ViaPoint> </Via> <Params> <PtModeFilter> <Exclude>false</Exclude> <PtMode>tram</PtMode> <PtMode>bus</PtMode> <TramSubmode>cityTram</TramSubmode> <BusSubmode>regionalBus</BusSubmode> </PtModeFilter> <LineFilter> <Line> <LineRef>ojp:92080::R</LineRef> </Line> <Line> <LineRef>ojp:91012:B:H</LineRef> </Line> <Exclude>false</Exclude> </LineFilter> <OperatorFilter> <Exclude>false</Exclude> <OperatorRef>ojp:849:VerkehrsbetriebeZrich</OperatorRef> <OperatorRef>ojp:11:SchweizerischeBundesbahnenSBB</OperatorRef> </OperatorFilter> <WalkSpeed>150</WalkSpeed> <NumberOfResults>20</NumberOfResults> <IgnoreRealtimeData>true</IgnoreRealtimeData> <ImmediateTripStart>true</ImmediateTripStart> <InterchangeLimit>1</InterchangeLimit> <AlgorithmType>fastest</AlgorithmType> <!-- <AlgorithmType>fastest</AlgorithmType> <AlgorithmType>leastCost</AlgorithmType> <AlgorithmType>leastWalking</AlgorithmType> <AlgorithmType>minChanges</AlgorithmType>--> <ItModesToCover>walk</ItModesToCover> <IncludeTrackSections>true</IncludeTrackSections> <IncludeLegProjection>true</IncludeLegProjection> <IncludeTurnDescription>true</IncludeTurnDescription> <IncludeIntermediateStops>true</IncludeIntermediateStops> </Params> </TripRequest> </RequestPayload> </ServiceRequest> </Trias> |
Exemple StopEventRequest
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 |
<?xml version="1.0" encoding="UTF-8"?> <Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/trias ../trias-xsd-v1.1/Trias.xsd"> <ServiceRequest> <siri:RequestTimestamp>2020-04-24T12:00:00Z</siri:RequestTimestamp> <siri:RequestorRef>IRMA</siri:RequestorRef> <siri:MessageIdentifier>4711</siri:MessageIdentifier> <RequestPayload> <StopEventRequest> <Location> <LocationRef> <StopPlaceRef>8530813</StopPlaceRef> <LocationName> <Text>Zürich Kreuzplatz</Text> </LocationName> </LocationRef> <DepArrTime>2020-04-24T12:00:00Z</DepArrTime> </Location> <Params> <NumberOfResults>20</NumberOfResults> <StopEventType>both</StopEventType> <IncludeRealtimeData>true</IncludeRealtimeData> </Params> </StopEventRequest> </RequestPayload> </ServiceRequest> </Trias> |
Exemple TripInformationRequest
Attention: La JourneyRef doit être recherchée à chaque fois via une StopEventRequest ou via une TripRequest. A chaque importation de données d’un horaire, le JourneyRef peut changer actuellement. Cela ne changera qu’avec l’introduction du Swiss Journey ID.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?xml version="1.0" encoding="utf-8"?> <Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/trias ../trias-xsd-v1.1/Trias.xsd"> <ServiceRequest> <siri:RequestTimestamp>2020-04-24T12:00:00Z</siri:RequestTimestamp> <siri:RequestorRef>IRMA</siri:RequestorRef> <siri:MessageIdentifier>4711</siri:MessageIdentifier> <RequestPayload> <TripInfoRequest> <JourneyRef>ojp:91009:B:H:j20:18975:18975</JourneyRef> <OperatingDayRef>2020-04-24</OperatingDayRef> <Params> <IncludeCalls>true</IncludeCalls> <IncludeService>true</IncludeService> </Params> </TripInfoRequest> </RequestPayload> </ServiceRequest> </Trias> |
API-Explorer (TRIAS2020)