Skip to content

OJPTripRequest

Concepts importants

  • Halte : Les jeux de données suivants seront d’utilité le services TP Suisse.
  • Trajet / voyage : Un trajet comprend le transport suivant un certain itinéraire et une certaine liaison selon l’horaire, à une certaine heure, utilisant un certain moyen de transport, dans une certaine direction.
  • Horaire : L’horaire, dans le contexte des transports publics (ainsi que du transport des marchandises sur rail), détermine l’itinéraire d’un moyen de transport. Il définit en plus les numéros des trains, les jours de service, la route, les heures d’arrivée, de départ et de passage pour toutes les haltes, ainsi que les vitesses permises dans les différents secteurs.
  • Pronostic : Un pronostic est une prévision des heures d’arrivée et de départ en tenant compte de la position actuelle du moyen de transport ainsi que des conflits résultant d’un retard et les décisons prévues qui en suivent dans les prochaines x minutes et leurs effets. Pour des prévisions plus loins dans le futur, une méthode plus simple est appliquée.
  • Moyen de transport : Soit portant la signification « type de véhicule » (train, bateau, tram, bus) ou la signification « système de transport » (transports publics, etc.).
  • DateTime dans Response : Il’s agit de l’« heure Zoulou » dans tous les cas (c.-à.-d. UTC). Pour obtenir l’heure locale suisse, il faut ajouter deux heures en été, une heure en hiver.

OJP Trip Service

TripRequest est le service central. L’indication d’une Origin et d’une Destination permet de planifier un Trip.

Un Trip comporte différentes «Legs» (tronçons).

Explorateur API

Vous pouvez faire des essais en utilisant vos propres requêtes – lien direct vers l’explorateur de l’API.

Request

Élément Cardinalité Description Exemple
RequestTimestamp 1:1 Timestamp de la Request. De préférence une heure UTC.
MessageIdentifier 0:1 Identifier du Message. Il est préférable que les ID soient croissants de manière strictement monotone.
ojp:Origin 1:* Point de départ indiqué dans la recherche. OJP offre d’assez nombreux moyens de le modéliser.

Pour plus d’infos, cf. la rubrique correspondante.

ojp:Destination 1:* Point d’arrivée indiqué dans la recherche. OJP offre d’assez nombreux moyens de le modéliser.

Pour plus d’infos, cf. la rubrique correspondante.

ojp:Via 0:1 Il est possible de spécifier une étape intermédiaire. Si plusieurs étapes doivent être prises en compte ou s’il faut calculer un circuit, le système requérant doit les répartir en différents Trips dont chacun fera l’objet d’une recherche distincte.

ojp:Params 0:1 Autres paramètres. Cf. la rubrique correspondante.

Structure Origin/Destination

Éléments Cardinalité Description Exemple
 ojp:PlaceRef/siri:StopPointRef 0:1 Renvoi vers le StopPoint.

ojp:PlaceRef/ojp:StopPlaceRef 0:1 Referenz auf eine Haltestelle

ojp:PlaceRef/ojp:GeoPosition 0:1 Coordonnées WGS84

ojp:PlaceRef/ojp:TopographicPlaceRef 0:1 Renvoi vers un lieu. Difficile, car les valeurs ne peuvent pas être devinées.

 

ojp:PlaceRef/ojp:PointOfInterestRef 0:1 Renvoi vers un Point of Interest. Le LocationName est ignoré.

 

ojp:PlaceRef/ojp:AddressRef 0:1 Renvoi vers une adresse.

 

ojp:PlaceRef/ojp:LocationName 1:1 Nom public du lieu.

Attention: le nom est ignoré. Il faut d’abord effectuer une LocationRequest qui livrera ensuite une Ref ou des coordonnées géographiques!

ojp:DepArrtime 0:1 Temps requis.

“Z” est l’heure zouloue (c’est-à-dire indépendante du fuseau horaire). Pour Z, les secondes doivent également être spécifiées. Si le format est incorrect ou s’il n’y a pas de Z, le système tente d’interpréter l’heure comme l’heure locale.

ojp:TimeAllowance 0:1 À la place du DepArrTime. Temps supplémentaire pour atteindre et quitter la Location.

IndividualTransportOptions 0:* Options pour le trajet permettant d’arriver à la halte de départ et de quitter la halte d’arrivée.

Cf. tableau distinct

IndividualTransportOptions

Éléments Cardinalité Description Exemple
 ojp:Mode 1:1 Mode grâce auquel l’Origin doit être atteinte. Pour le moment, seul le mode «walk» est pris en charge.

Modes disponibles à l’avenir:

  • walk
  • cycle
  • taxi
  • self-drive-car
  • others-drive-car
  • motorcycle
  • truck
ojp:MaxDistance 0:1 Distance maximale en mètres. Cela permet de réduire les itinéraires.
ojp:MaxDuration 0:1  Durée maximale. Fixe une durée maximale pour l’itinéraire. Attention au format: il s’agit d’une xs:duration.
ojp:MinDistance 0:1 Distance minimale en mètres. Cela permet de réduire les itinéraires.

Cet attribut n’est pas pris en charge.

ojp:MinDuration 0:1 Durée minimale. Fixe une durée minimale pour l’itinéraire. Attention au format: il s’agit d’une xs:duration.

Cet attribut n’est pas pris en charge.

ojp:Speed 0:1 Vitesse relative en %. La valeur normale est «100%».

Params

Élément Cardinalité Description Exemple
ojp:PtModeFilter  0:1 Le filtre indique quels Modes doivent être pris en compte.

Les listes des Modes et Submodes proviennent de SIRI. Elles sont énumérées dans l’élément XSD.

ojp:LineFilter  0:1 Lignes devant être incluses ou exclues.

ojp:OperatorFilter 0:1 Exploitants devant être inclus ou exclus.

ojp:PrivateModeFilter 0:1 Spécifie si des modes privés doivent être utilisés ou non.

Cet attribut n’est pas disponible.

 n.d.
ojp:NoSingleStep 0:1 L’utilisateur ne peut franchir aucune marche.

Cet attribut n’est pas disponible.

 n/a
ojp:NoStairs 0:1 L’utilisateur ne peut pas prendre d’escalier.

Cet attribut est planifié pour une version ultérieure.

 n.d.
ojp:NoEscalator 0:1 L’utilisateur ne peut pas prendre d’escalier roulant.

Cet attribut est planifié pour une version ultérieure.

 n.d.
ojp:NoElevator 0:1 L’utilisateur ne peut pas utiliser d’ascenseur.

Cet attribut est planifié pour une version ultérieure.

 n.d.
ojp:NoRamp 0:1 L’utilisateur ne peut pas prendre de rampe.

Cet attribut n’est pas disponible.

 n.d.
ojp:LevelEntrance 0:1 L’utilisateur a besoin d’entrées/de passages de plain-pied.

Cet attribut est planifié pour une version ultérieure.

 n.d.
ojp:BikeTransport 0:1 L’utilisateur souhaite emporter un vélo.

Cet attribut est planifié pour une version ultérieure.

 n.d.
ojp:WalkSpeed 0: Écart par rapport à la vitesse de marche normale. 100% = normale.

Cet attribut est planifié pour une version ultérieure.

 n.d.
ojp:NumberOfResults 0:1 Nombre de résultats

Cet attribut est planifié pour une version ultérieure.

ojp:NumberOfResultsBefore 0:1 Nombre de résultats avant une heure donnée (à la destination ou au départ).

Si un client de l’OJP souhaite recevoir d’autres trajets plus anciens en plus de ceux déjà reçus, il doit envoyer une nouvelle demande avec NumberOfResultsBefore=n et Destination.DepArrTime = heure de fin la plus ancienne trouvée dans la dernière réponse moins 1 minute.

ojp:NumberOfResultsAfter 0:1 Nombre de résultats après un temps donné (à l’arrivée ou au départ)

Si un client de l’OJP souhaite recevoir des demandes ultérieures en plus de celles déjà reçues, il doit envoyer une nouvelle demande avec NumberOfResultsAfter=n et Origin.DepArrTime = dernier StartTime trouvé dans la dernière réponse plus 1 minute.

ojp:IgnoreRealtimeData 0:1 Les données en temps réel doivent-elles être prises en compte?

ojp:ImmediateTripStart 0:1 Faut-il supposer que l’utilisateur est déjà en route?

Cetattribut n’est pas supporté.

 n.d.
ojp:TransferLimit 0:1 Nombre maximal de correspondances.

ojp:OptimisationMethod 0:1 Quelle méthode d’optimisation doit être utilisée?

fastest, least walking, etc.

Cet attribut est planifié pour une version ultérieure.

 n.d.
ojp:ItModesToCover 0:* Un Trip distinct monomodal doit être trouvé pour chaque mode de la liste, en complément aux Trips intermodaux.

Est désormais pris en charge depuis août 2022 pour les offres de partage (sharing).

Voir le chapitre sur le partage (sharing) ci-dessous.
ojp:IncludeTrackSection 0:1 L’information doit inclure des informations TrackSection, qui permettent de réaliser une projection géographique d’une Leg. Les éléments émis sont TrackStart, TrackEnd et Duration.

Les informations requises doivent bien sûr être disponibles (ce qui n’est pas trop le cas actuellement).

ojp:IncludeLegProjection 0:1 Le résultat doit inclure la présentation géographique d’une Leg. Dans le cas des Legs des TP, cette fonction n’est pas possible actuellement car le parcours des lignes n’est pas connu. Mais elle sera bientôt disponible pour les Legs «walk».

ojp:IncludeTurnDescription 0:1 Le PathGuidance fournit une description détaillée de l’itinéraire pour chaque Leg.

ojp:IncludeAccessibility 0:1 Permet d’inclure des informations relevant de la LHand.

Attribut planifié.

ojp:IncludeIntermediateStops 0:1 Permet de préciser s’il faut indiquer les haltes parcourues durant le trajet, c.-à-d. tous les arrêts intermédiaires.

ojp:IncludeFare 0:1 Permet de préciser si les renseignements relatifs au prix doivent être indiqués.

Cet attribut n’est pas pris en compte actuellement.

ojp:Extension 0:1 Utilisé pour certains modes de partage (sharing). Voir le chapitre sur le partage (sharing) ci-dessous.

 

Response

Exemple de réponse concrète: tripresponse

Le premier élément fourni est ojp:TripResponseContext. Ce dernier contient des indications sur tous les Places utilisés (haltes, localités, adresses, etc.) dans l’élément ojp:Places:

À l’avenir, le contexte pourra également englober les Situations (dérangements).

Vient ensuite l’élément 0:* TripResult. Après l’en-tête,

on trouve les différents Trips.

Si le calcul n’a pas été effectué à partir d’une halte et à destination d’une autre halte, les éléments qui apparaissent en premier sont les Legs qui mènent à la halte.

Vient ensuite un TimedLeg.

Comments:

  • Real-time data is unfortunately not yet available. Otherwise, the respective details would already have been integrated.
  • The XXXRef will gradually be adapted with the new Swiss Identifiers.
  • The DestinationStopPointRefs are not ideal yet.
  • Les attributs se forment à partir des attributs connus de HRDF avec A__ . Les noms sont dérivés des indications de trafic. Dans certains cas, elles correspondent également à une combinaison de SIRI Facilities. Le mappage se fait selon Notes2FacilitiesMappingFile. Dans de tels cas, il n’y a pas de mapping.

Some points are stored in extensions:

  • Name/text (e.g. “Train“) Train Transport mode (transport mode category, download from https://opentransportdata.swiss/de/dataset/verkehrsmittellisten)
  • ShortName/Text (e.g. “IC“) Transport submode abbr. (Offer category short description, download from https://opentransportdata.swiss/de/dataset/verkehrsmittellisten)
  • PublishedLineName/Text (e.g. “IC8” or “S1”) passenger relevant route text
  • TimedLeg.Extension.TransportTypeName/Text (e.g. “InterCity“) Transport submode name (offer category name, download from https://opentransportdata.swiss/de/dataset/verkehrsmittellisten)
  • TimedLeg.Extension.PublishedJourneyNumber/Text (e.g. “829”) Train number (train number)
  • TimedLeg.Extension.OperatorName/Text (e.g. “Swiss Federal Railways SBB“) OperatorName

 

Pour les correspondances, on utilise des TransferLegs:

En particulier pour les Transfers, des améliorations seront nécessaires en lien avec la LHand.

Informations géographiques utilisées

La fourniture d’itinéraires piétons se base sur l’OSM.

Les éléments ci-dessous se fondent pour le moment exclusivement sur l’OSM:

  • ContinuousLeg et TransferLeg (TransferMode=walk):
  • TrackSection (sans coordonnées, car la LegProjection ne peut être configurée que conjointement pour tous les LegArten en raison d’itinéraires de convoi manquants)
  • TurnAction
  • TimedLeg
  • LegIntermediates

Important:

  • L’élément IncludeAccessibility est pris en compte uniquement à partir de la LHand.

OJP-TripRequest avec offres de partage (sharing)

Nouveauté depuis août 2022, l’OJP TripRequest permet de calculer des chaînes de déplacement avec des véhicules partagés (vélo, eScooter, vélo de location ou autopartage) au début et/ou à la fin (premier et/ou dernier mile).

Remarques générales

La fonctionnalité a pour l’instant un caractère expérimental. Il peut en résulter des chaînes de déplacement inattendues ou peu adaptées à la pratique. L’équipe SKI+ est prête à recevoir un feedback à ce sujet.

Dans la mesure du possible, des éléments de la norme OJP 1.0 ont été utilisés. Certaines extensions ont toutefois dû être mises en œuvre au moyen d’extensions. Des adaptations sont attendues dans la perspective de la nouvelle version majeure OJP 2.0 prévue.

Les calculs sont basés sur cette source de données.

Comme alternative au TripRequest, les emplacements des véhicules de partage peuvent désormais être consultés via le OJPLocationInformationRequest.

Paramètres pour contrôler TripRequest

Le contrôle de la requête dans TripRequest se fait par des paramètres (éléments XML supplémentaires), à ajouter à quatre endroits possibles :

1. Voyage monomodal en vélo

Sur la base du standard OJP-1.0, <ojp:Params> est complété à cet effet par l’élément <ojp:ItModesToCover>, avec la valeur “cycle” :

2. Voyage monomodal en trottinette électrique, vélo à louer ou voiture partagé

<ojp:Params> est complété par une extension :

avec “escooter_rental”, “bicycle_rental” ou “car_sharing”, respectivement.

3. Voyage intermodal en transport public et en vélo au début et/ou à la fin

Selon le standard OJP-1.0, <ojp:Origin> et/ou <ojp:Destination> reçoivent l’élément <ojp:IndividualTransportOptions>. Le mode (cycle), la durée minimale/maximale en minutes et la distance minimale/maximale en mètres y sont définis, comme le montre l’exemple ci-dessous.

4. Voyage intermodal en transport public et en trottinette électrique, vélo à louer ou voiture partagé(e) au début et/ou à la fin

<ojp:Params> est étendu avec une extension, avec par analogie <ojp:Origin> et/ou <ojp:Destination> et avec mode escooter_rental, bicycle_rental ou car_sharing, respectivement, comme illustré dans l’exemple suivant :

Aperçu des combinaisons possibles

Le tableau suivant montre quelles combinaisons sont judicieuses pour les déplacements monomodaux et multimodaux. (Note : les transports publics sont considérés ici comme un seul mode, même s’ils incluent différents modes de transport et des échanges) :

combinaison voyage monomodal multimodal —
mode au début
multimodal —
mode à la fin
mode début & fin
transports publics default
à pied ItModesToCover=walk  or
IndividualTransportOptions=walk (hikes, s. above)
default default default
avec sa propre bicyclette ItModesToCover=
cycle
IndividualTransportOptions
… Mode=cycle
avec sa propre voiture ItModesToCover=
self-drive-car
bicyclette à louer/partagée Ext./ItModesToCover=
bicycle_rental
Ext./Origin/Mode=
bicycle_rental
Ext./Destin./Mode=
bicycle_rental
possible si les modes origine et destination sont égaux
trottinette électrique partagée Ext./ItModesToCover=
escooter_rental
Ext./Origin/Mode=
escooter_rental
Ext./Destin./Mode=
escooter_rental
possible si les modes origine et destination sont égaux
voiture paragée Ext./ItModesToCover=
car_sharing
Ext./Destin./Mode=
car_sharing

 

Rechercher des trains de voitures

Exemple de demande pour un train autotunnel (ATZ) :