OJPTripRequest

Description rapide

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).

Description spécifique

Les concepts sous-jacents peuvent également être consultés dans les différentes pages d’aperçu.

  • 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.

Description technique

Explorateur API

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

Request

<?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-31T12:30:00Z</RequestTimestamp>
            <RequestorRef>3CC3C04A-20A0-4B12-AC46-5A7843E328A7</RequestorRef>
            <ojp:OJPTripRequest>
				<RequestTimestamp>2020-01-31T12:30:00Z</RequestTimestamp>
                <ojp:Origin>
                    <ojp:PlaceRef>
                        <ojp:StopPlaceRef>8503000</ojp:StopPlaceRef>
                        <ojp:LocationName>
                            <ojp:Text>Bern</ojp:Text>
                        </ojp:LocationName>
                    </ojp:PlaceRef>
                </ojp:Origin>
                <ojp:Destination>
                    <ojp:PlaceRef>
                        <ojp:StopPlaceRef>8505000</ojp:StopPlaceRef>
                        <ojp:LocationName>
                            <ojp:Text>Luzern</ojp:Text>
                        </ojp:LocationName>
                    </ojp:PlaceRef>
                </ojp:Destination>
                <ojp:Params>
                    <ojp:NumberOfResults>10</ojp:NumberOfResults>
                    <ojp:OptimisationMethod>fastest</ojp:OptimisationMethod>
                </ojp:Params>
            </ojp:OJPTripRequest>
        </ServiceRequest>
    </OJPRequest>
</OJP>
+
ÉlémentCardinalitéDescriptionExemple
RequestTimestamp1:1Timestamp de la Request. De préférence une heure UTC.
<RequestTimestamp>2020-01-31T12:30:00Z</RequestTimestamp>
MessageIdentifier0:1Identifier du Message. Il est préférable que les ID soient croissants de manière strictement monotone.
<MessageIdentifier>756</MessageIdentifier>
ojp:Origin1:*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:Origin>
  <ojp:PlaceRef>
    <ojp:StopPlaceRef>8503000</ojp:StopPlaceRef>
    <ojp:LocationName>
      <ojp:Text>Bern</ojp:Text>
    </ojp:LocationName>
  </ojp:PlaceRef>
  <ojp:DepArrTime>2020-01-20T12:00:00Z</ojp:DepArrTime>
</ojp:Origin>
ojp:Destination1:*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:Destination>
  <ojp:PlaceRef>
    <ojp:StopPlaceRef>8505000</ojp:StopPlaceRef>
    <ojp:LocationName>
      <ojp:Text>Luzern</ojp:Text>
    </ojp:LocationName>
  </ojp:PlaceRef>
  <ojp:DepArrTime>2020-01-20T12:00:00Z</ojp:DepArrTime>
</ojp:Destination>
ojp:Via0:1Il 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:Via>
	<ojp:ViaPoint>
		<StopPointRef>8506000</StopPointRef>
		<ojp:LocationName>
			<ojp:Text>Winterthur</ojp:Text>
		</ojp:LocationName>
	</ojp:ViaPoint>
</ojp:Via>
ojp:Params0:1Autres paramètres. Cf. la rubrique correspondante.
<ojp:Params>
	<ojp:IncludeTrackSections>true</ojp:IncludeTrackSections>
	<ojp:IncludeLegProjection>true</ojp:IncludeLegProjection>
	<ojp:IncludeTurnDescription>true</ojp:IncludeTurnDescription>
	<ojp:IncludeAccessibility>true</ojp:IncludeAccessibility>
	<ojp:IncludeIntermediateStops>true</ojp:IncludeIntermediateStops>
	<ojp:IncludeFare>true</ojp:IncludeFare>
</ojp:Params>

Structure Origin/Destination

ÉlémentsCardinalitéDescriptionExemple
 ojp:PlaceRef/siri:StopPointRef0:1Renvoi vers le StopPoint.
<ojp:PlaceRef>
	<StopPointRef>8530813</StopPointRef>
	<ojp:LocationName>
		<ojp:Text>Zürich Kreuzplatz</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:PlaceRef/ojp:StopPlaceRef0:1Referenz auf eine Haltestelle
<ojp:PlaceRef>
	<StopPointRef>8530813</StopPointRef>
	<ojp:LocationName>
		<ojp:Text>Zürich Kreuzplatz</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:PlaceRef/ojp:GeoPosition0:1Coordonnées WGS84
<ojp:PlaceRef>
	<ojp:GeoPosition>
		<Longitude>8.484003</Longitude>
		<Latitude>47.386135</Latitude>
	</ojp:GeoPosition>
	<ojp:LocationName>
		<ojp:Text>Altstetten</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:PlaceRef/ojp:TopographicPlaceRef0:1Renvoi vers un lieu. Difficile, car les valeurs ne peuvent pas être devinées.

 

<ojp:PlaceRef>
	<ojp:TopographicPlaceRef>23006351:1</ojp:TopographicPlaceRef>
	<ojp:LocationName>
		<ojp:Text>Bern (Bern)</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:PlaceRef/ojp:PointOfInterestRef0:1Renvoi vers un Point of Interest. Le LocationName est ignoré.

 

<ojp:PlaceRef>
	<ojp:PointOfInterestRef>1</ojp:PointOfInterestRef>
	<ojp:LocationName>
		<ojp:Text>unbekannt</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:PlaceRef/ojp:AddressRef0:1Renvoi vers une adresse.

 

<ojp:PlaceRef>
	<ojp:AddressRef>
	      <ojp:AddressCode>streetID:1500000041::23020227:-1:Via al Dosso:Torricella-Taverne:Via al Dosso::Via al Dosso: 6807:ANY:DIVA_STREET:994668:6208464:MRCV:sbb</ojp:AddressCode>
	</ojp:>AddressRef
</ojp:PlaceRef>
ojp:PlaceRef/ojp:LocationName1:1Nom 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:PlaceRef>
	<StopPointRef>8503003</StopPointRef>
	<ojp:LocationName>
	<ojp:Text>Zürich Stadelhofen</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:DepArrtime0:1Temps 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:DepArrTime>2020-01-20T12:00:00Z</ojp:DepArrTime>
ojp:TimeAllowance0:1À la place du DepArrTime. Temps supplémentaire pour atteindre et quitter la Location.
<ojp:TimeAllowance>PT2H</ojp:TimeAllowance>
IndividualTransportOptions0:*Options pour le trajet permettant d’arriver à la halte de départ et de quitter la halte d’arrivée.

Cf. tableau distinct

<ojp:IndividualTransportOptions>
    <ojp:Mode>walk</ojp:Mode>
    <ojp:MaxDistance>5000</ojp:MaxDistance>
    <ojp:MaxDuration>PT1H</ojp:MaxDuration>
    <ojp:Speed>120</ojp:Speed>
</ojp:IndividualTransportOptions>

IndividualTransportOptions

ÉlémentsCardinalitéDescriptionExemple
 ojp:Mode1:1Mode 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:Mode>walk</ojp:Mode>
ojp:MaxDistance0:1Distance maximale en mètres. Cela permet de réduire les itinéraires.
<ojp:MaxDistance>10000</ojp:MaxDistance>
ojp:MaxDuration0:1 Durée maximale. Fixe une durée maximale pour l’itinéraire. Attention au format: il s’agit d’une xs:duration.
<ojp:MaxDuration>PT2H</ojp:MaxDuration>
ojp:MinDistance0:1Distance minimale en mètres. Cela permet de réduire les itinéraires.

Cet attribut n’est pas pris en charge.

<ojp:MinDistance>1</ojp:MinDistance>
ojp:MinDuration0:1Duré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:MinDuration>PT1S</ojp:MinDuration>
ojp:Speed0:1Vitesse relative en %. La valeur normale est «100%».
<ojp:Speed>1000</ojp:Speed>

Params

ÉlémentCardinalitéDescriptionExemple
ojp:PtModeFilter 0:1Le filtre indique quels Modes doivent être pris en compte.

Les listes des Modes sont énumérées dans l’élément XSD. Le filtrage sur les Submode n’a aucun effet.

<ojp:PtModeFilter>
	<ojp:Exclude>true</ojp:Exclude>
	<ojp:PtMode>rail</ojp:PtMode>
</ojp:PtModeFilter>
ojp:LineFilter 0:1Lignes devant être incluses ou exclues.
<ojp:LineFilter>
    <ojp:Line>
        <LineRef>sbb:92080::R</LineRef>
    </ojp:Line>
    <ojp:Line>
        <LineRef>sbb:91012:B:H</LineRef>
    </ojp:Line>
    <ojp:Exclude>true</ojp:Exclude>
</ojp:LineFilter>
ojp:OperatorFilter0:1Exploitants devant être inclus ou exclus.
<ojp:OperatorFilter>
    <ojp:Exclude>false</ojp:Exclude>
    <ojp:OperatorRef>sbb:11:SchweizerischeBundesbahnenSBB</ojp:OperatorRef>
</ojp:OperatorFilter>
ojp:PrivateModeFilter0:1Spécifie si des modes privés doivent être utilisés ou non.

Cet attribut n’est pas disponible.

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

Cet attribut n’est pas disponible.

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

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

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

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

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

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

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

Cet attribut n’est pas disponible.

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

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

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

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

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

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

 n.d.
ojp:NumberOfResults0:1Nombre de résultats

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

<ojp:NumberOfResults>10</ojp:NumberOfResults>
ojp:NumberOfResultsBefore0:1Nombre 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:NumberOfResultsBefore>4</ojp:NumberOfResultsBefore>
ojp:NumberOfResultsAfter0:1Nombre 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:NumberOfResultsAfter>6</ojp:NumberOfResultsAfter>
ojp:IgnoreRealtimeData0:1Les données en temps réel doivent-elles être prises en compte?
<ojp:IgnoreRealtimeData>true</ojp:IgnoreRealtimeData>
ojp:ImmediateTripStart0:1Faut-il supposer que l’utilisateur est déjà en route?

Cetattribut n’est pas supporté.

 n.d.
ojp:TransferLimit0:1Nombre maximal de correspondances.
<ojp:TransferLimit>3</ojp:TransferLimit>
ojp:OptimisationMethod0:1Quelle méthode d’optimisation doit être utilisée?

fastest, least walking, etc.

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

 n.d.
ojp:ItModesToCover0:*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:IncludeTrackSection0:1L’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:IncludeTrackSections>true</ojp:IncludeTrackSections>
ojp:IncludeLegProjection0:1Le 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:IncludeLegProjection>true</ojp:IncludeLegProjection>
ojp:IncludeTurnDescription0:1Le PathGuidance fournit une description détaillée de l’itinéraire pour chaque Leg.
<ojp:IncludeTurnDescription>true</ojp:IncludeTurnDescription>
ojp:IncludeAccessibility0:1Permet d’inclure des informations relevant de la LHand.

Attribut planifié.

<ojp:IncludeAccessibility>true</ojp:IncludeAccessibility>
ojp:IncludeIntermediateStops0:1Permet de préciser s’il faut indiquer les haltes parcourues durant le trajet, c.-à-d. tous les arrêts intermédiaires.
<ojp:IncludeIntermediateStops>true</ojp:IncludeIntermediateStops>
ojp:IncludeFare0:1Permet de préciser si les renseignements relatifs au prix doivent être indiqués.

Cet attribut n’est pas pris en compte actuellement.

<ojp:IncludeFare>true</ojp:IncludeFare>
ojp:Extension0:1Utilisé 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:

<ojp:Location>
	<ojp:StopPlace>
		<ojp:StopPlaceRef>8591252</ojp:StopPlaceRef>
		<ojp:StopPlaceName>
			<ojp:Text>Zürich, Letzigrund</ojp:Text>
		</ojp:StopPlaceName>
		<ojp:TopographicPlaceRef>23026261:27</ojp:TopographicPlaceRef>
	</ojp:StopPlace>
	<ojp:LocationName>
		<ojp:Text xml:lang="de">Zürich, Letzigrund</ojp:Text>
	</ojp:LocationName>
	<ojp:GeoPosition>
		<siri:Longitude>8.50373</siri:Longitude>
		<siri:Latitude>47.38124</siri:Latitude>
	</ojp:GeoPosition>
</ojp:Location>

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

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

	<ojp:ResultId>ID-153A06C3-1F00-4048-9141-A217840479A6</ojp:ResultId>
	<ojp:Trip>
		<ojp:TripId>ID-153A06C3-1F00-4048-9141-A217840479A6</ojp:TripId>
		<ojp:Duration>PT29M</ojp:Duration>
		<ojp:StartTime>2020-01-20T11:57:00Z</ojp:StartTime>
		<ojp:EndTime>2020-01-20T12:26:00Z</ojp:EndTime>
		<ojp:Transfers>1</ojp:Transfers>
<!-- ... -->

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.

<ojp:TripLeg>
	<ojp:LegId>1</ojp:LegId>
	<ojp:TimedLeg>
		<ojp:LegBoard>
			<siri:StopPointRef>8591252</siri:StopPointRef>
				<ojp:StopPointName>
					<ojp:Text>Zürich, Letzigrund</ojp:Text>
				</ojp:StopPointName>
				<ojp:ServiceDeparture>
					<ojp:TimetabledTime>2020-01-20T11:57:00Z</ojp:TimetabledTime>
				</ojp:ServiceDeparture>
				<ojp:Order>1</ojp:Order>
		</ojp:LegBoard>
		<ojp:LegIntermediates>
			<siri:StopPointRef>8591038</siri:StopPointRef>
			<ojp:StopPointName>
				<ojp:Text>Zürich, Albisriederplatz</ojp:Text>
			</ojp:StopPointName>
			<ojp:ServiceArrival>
				<ojp:TimetabledTime>2020-01-20T11:59:00Z</ojp:TimetabledTime>
			</ojp:ServiceArrival>
			<ojp:ServiceDeparture>
				<ojp:TimetabledTime>2020-01-20T11:59:00Z</ojp:TimetabledTime>
			</ojp:ServiceDeparture>
			<ojp:Order>2</ojp:Order>
		</ojp:LegIntermediates>
<!-- weitere LegIntermediate --->
		<ojp:LegAlight>
			<siri:StopPointRef>8591105</siri:StopPointRef>
			<ojp:StopPointName>
				<ojp:Text>Zürich, Bürkliplatz</ojp:Text>
			</ojp:StopPointName>
			<ojp:ServiceArrival>
				<ojp:TimetabledTime>2020-01-20T12:13:00Z</ojp:TimetabledTime>
			</ojp:ServiceArrival>
			<ojp:Order>11</ojp:Order>
		</ojp:LegAlight>
		<ojp:Service>
			<ojp:OperatingDayRef>2020-01-20</ojp:OperatingDayRef>
			<ojp:JourneyRef>sbb:91002::H:j20:1253</ojp:JourneyRef>
			<siri:LineRef>sbb:91002:</siri:LineRef>
			<siri:DirectionRef>H</siri:DirectionRef>
			<ojp:Mode>
				<ojp:PtMode>tram</ojp:PtMode>
				<siri:TramSubmode>cityTram</siri:TramSubmode>
				<ojp:Name>
					<ojp:Text xml:lang="de">Tram</ojp:Text>
				</ojp:Name>
			</ojp:Mode>
			<ojp:PublishedLineName>
				<ojp:Text>2</ojp:Text>
			</ojp:PublishedLineName>
			<ojp:OperatorRef>sbb:3849</ojp:OperatorRef>
			<ojp:Attribute>
				<ojp:Text>
					<ojp:Text xml:lang="de">Niederflureinstieg</ojp:Text>
				</ojp:Text>
				<ojp:Code>A__NF</ojp:Code>
			</ojp:Attribute>
			<ojp:DestinationStopPointRef>de:00000:-1</ojp:DestinationStopPointRef>
			<ojp:DestinationText>
				<ojp:Text xml:lang="de">Zürich Tiefenbrunnen, Bahnhof</ojp:Text>
			</ojp:DestinationText>
		</ojp:Service>
	</ojp:TimedLeg>
</ojp:TripLeg>
+

Comments:

  • 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://data.opentransportdata.swiss/de/dataset/verkehrsmittellisten)
  • ShortName/Text (e.g. “IC“) Transport submode abbr. (Offer category short description, download from https://data.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://data.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:

<ojp:TransferLeg>
	<ojp:TransferMode>walk</ojp:TransferMode>
	<ojp:LegStart>
		<siri:StopPointRef>8591105</siri:StopPointRef>
		<ojp:LocationName>
			<ojp:Text xml:lang="de">Zürich, Bürkliplatz</ojp:Text>
		</ojp:LocationName>
	</ojp:LegStart>
	<ojp:LegEnd>
		<siri:StopPointRef>8591105</siri:StopPointRef>
		<ojp:LocationName>
			<ojp:Text xml:lang="de">Zürich, Bürkliplatz</ojp:Text>
		</ojp:LocationName>
	</ojp:LegEnd>
	<ojp:TimeWindowStart>2020-01-20T12:13:00Z</ojp:TimeWindowStart>
	<ojp:TimeWindowEnd>2020-01-20T12:15:00Z</ojp:TimeWindowEnd>
	<ojp:Duration>PT2M</ojp:Duration>
	<ojp:WalkDuration>PT2M</ojp:WalkDuration>
	<ojp:BufferTime>PT0M</ojp:BufferTime>
</ojp:TransferLeg>

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” :

<ojp:ItModesToCover>cycle</ojp:ItModesToCover>

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

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

<ojp:Extension> ...
  <ojp:ItModesToCover>escooter_rental</ojp:ItModesToCover> ...
</ojp: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.

<ojp:IndividualTransportOptions>
  <ojp:Mode>cycle</ojp:Mode> <!--vélo au début -->
  <ojp:MaxDuration>PT30M</ojp:MaxDuration> <!--Optionnel: durée maximale-->
  <ojp:MinDuration>PT2M</ojp:MinDuration> <!--Optionnel: durée minimale-->
  <ojp:MaxDistance>20000</ojp:MaxDistance> <!--Optionnel: distance maximale-->
  <ojp:MinDistance>100</ojp:MinDistance> <!--Optionnel: distance minimale-->
</ojp:IndividualTransportOptions>

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 :

<ojp:Extension>
  <ojp:Origin>
    <ojp:Mode>escooter_rental</ojp:Mode> <!--trottinette électrique au début-->
    <ojp:MaxDuration>PT30M</ojp:MaxDuration> <!--Optionnel: durée maximale-->
    <ojp:MinDuration>PT2M</ojp:MinDuration> <!--Optionnel: durée minimale-->
    <ojp:MaxDistance>20000</ojp:MaxDistance> <!--Optionnel: distance maximale-->
    <ojp:MinDistance>100</ojp:MinDistance> <!--Optionnel: distance minimale-->
  </ojp:Origin>
</ojp:Extension>

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) :

combinaisonvoyage monomodalmultimodal —
mode au début
multimodal —
mode à la fin
mode début & fin
transports publicsdefault
à piedItModesToCover=walk  or
IndividualTransportOptions=walk (hikes, s. above)
defaultdefaultdefault
avec sa propre bicycletteItModesToCover=
cycle
IndividualTransportOptions
… Mode=cycle
avec sa propre voitureItModesToCover=
self-drive-car
bicyclette à louer/partagéeExt./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éeExt./ItModesToCover=
escooter_rental
Ext./Origin/Mode=
escooter_rental
Ext./Destin./Mode=
escooter_rental
possible si les modes origine et destination sont égaux
voiture paragéeExt./ItModesToCover=
car_sharing
Ext./Destin./Mode=
car_sharing

 

Rechercher des trains de voitures

Exemple de demande pour un train autotunnel (ATZ) :

<siri:OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.vdv.de/ojp" version="1.0">  <siri:OJPRequest>
    <siri:ServiceRequest>
      <siri:RequestTimestamp>2024-03-21T16:22:30.112Z</siri:RequestTimestamp>
      <siri:RequestorRef>OJP_JS_SDK_v0.9.31</siri:RequestorRef>
      <OJPTripRequest>
        <siri:RequestTimestamp>2024-03-21T16:22:30.112Z</siri:RequestTimestamp>
        <Origin>
          <PlaceRef>
            <StopPlaceRef>8511171</StopPlaceRef>
            <LocationName>
              <Text>Kandersteg Autoverlad</Text>
            </LocationName>
          </PlaceRef>
        </Origin>
        <Destination>
          <PlaceRef>
            <StopPlaceRef>8519655</StopPlaceRef>
            <LocationName>
              <Text>Goppenstein Autoverlad</Text>
            </LocationName>
          </PlaceRef>
        </Destination>
      <ojp:Params>
            <ojp:PrivateModeFilter>
                  <ojp:Exclude>false</ojp:Exclude>
            </ojp:PrivateModeFilter>
            <ojp:NumberOfResults>3</ojp:NumberOfResults>
      <ojp:IncludeTrackSections>false</ojp:IncludeTrackSections>
      <ojp:IncludeLegProjection>false</ojp:IncludeLegProjection>
      <ojp:IncludeTurnDescription>false</ojp:IncludeTurnDescription>
      <ojp:IncludeIntermediateStops>true</ojp:IncludeIntermediateStops>
      </ojp:Params>
      </OJPTripRequest>
    </siri:ServiceRequest>
  </siri:OJPRequest>
</siri:OJP>