OJPLocationInformationRequest 2.0

#AutoTranslate

Description rapide

Le Location Information Service (LIR) selon OJP 2,0 fournit différents lieux en réponse à une demande. Les principales données d’entrée (Request) sont les suivantes:

  • texte d’entrée
  • Types d’objets autorisés
  • Pondération/restrictions géographiques
  • Autres restrictions

La sortie (Response) est une liste d’objets assortie d’un nom, d’une position géographique, d’attributs et d’une probabilité.

Si la LocationInformationRequest est utilisée sans nom, mais avec une GeoPosition, un Circle ou un Rectangle, les types=»address», «stop» et «poi» sont pris en charge. En outre, une GeoPosition avec le filtre type=»address» livre une adresse précise avec le numéro de rue.

Description technique

Explorateur de l’API et autres références

Vous pouvez essayer vos propres requêtes – Open API Explorer.
Informations détaillées sur les différents paramètres pour le Demande et les Réponse sont également en ligne sur le site officiel Page GitHub dans le VDV.

Demande

Exemple de LocationInformationRequest après OJP 2,0:

<?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 ../../../../Downloads/OJP-changes_for_v1.1%20(1)/OJP-changes_for_v1.1/OJP.xsd">
    <OJPRequest>
        <siri:ServiceRequest>
            <siri:RequestTimestamp>2024-11-26T16:03:09Z</siri:RequestTimestamp>
            <siri:RequestorRef>SKIplusDemo</siri:RequestorRef>
            <OJPLocationInformationRequest>
                <siri:RequestTimestamp>2024-11-26T16:03:09Z</siri:RequestTimestamp>
                <siri:MessageIdentifier>LIR-1a</siri:MessageIdentifier>
                <InitialInput>
                    <Name>Bern</Name>
                </InitialInput>
                <Restrictions>
                    <Type>stop</Type>
                    <NumberOfResults>5</NumberOfResults>
                </Restrictions>
            </OJPLocationInformationRequest>
        </siri:ServiceRequest>
    </OJPRequest>
</OJP>

Description des éléments du OJPLocationInformationRequests:

Élément Cardinalité Description Exemple
siri:RequestTimestamp 1:1 Timestamp de la requête, sous forme d’heure UTC.
<siri:RequestTimestamp>2024-11-26T16:03:09Z</siri:RequestTimestamp>
siri:MessageIdentifier 0:1 ID univoque du message, permettant d’identifier la réponse.
<siri:MessageIdentifier>LIR-1a</siri:MessageIdentifier>
InitialInput/Name 0:1 Nom de l’objet. Si aucun nom n’est indiqué, la recherche est effectuée à partir d’autres critères.

Lorsque plusieurs appellations sont courantes, il est possible d’effectuer une recherche selon chacune d’elles. P. ex. la recherche fonctionne aussi bien en indiquant «Basel» que «Bâle CFF». P. ex. «Biel» est trouvé aussi bien avec la requête «Biel» qu’avec la requête «Bienne».


<InitialInput>
<Name>Bern</Name>
</InitialInput>

InitialInput/GeoPosition 0:1 Position recherchée avec les coordonnées géographiques (WGS84).
<InitialInput>
<GeoPosition>
<siri:Longitude>8.5545</siri:Longitude>
<siri:Latitude>47.365</siri:Latitude>
</GeoPosition>
</InitialInput>
InitialInput/GeoRestriction/Circle 0:1 Restriction de la recherche à un cercle défini. Cela permet p. ex. d’afficher toutes les haltes dans un cercle défini à condition de sélectionner le type correct. Coordonnées WGS84.
<GeoRestriction>
<Circle>
<Center>
<siri:Longitude>8.5545</siri:Longitude>
<siri:Latitude>47.365</siri:Latitude>
</Center>
<Radius>500</Radius>
</Circle>
</GeoRestriction>
InitialInput/GeoRestriction/Rectangle 0:1 Restriction de la recherche à un rectangle spécifique. Coordonnées WGS84.
<InitialInput>
<GeoRestriction>
<Rectangle>
<UpperLeft>
<siri:Longitude>8.54</siri:Longitude>
<siri:Latitude>47.37</siri:Latitude>
</UpperLeft>
<LowerRight>
<siri:Longitude>8.57</siri:Longitude>
<siri:Latitude>47.36</siri:Latitude>
</LowerRight>
</Rectangle>
</GeoRestriction>
</ojp:InitialInput>
PlaceRef 0:1 Une référence à un lieu cf. tableau séparé
Restrictions 0:1 Restrictions à utiliser cf. tableau séparé

PlaceRef

En cas de Request avec une PlaceRef si l’élément nécessaire <Name> est ignoré. Seul le numéro de référence est évalué.

Élément Cardinalité Description Exemple
siri:StopPointRef 0:1 Renvoi vers un ScheduledStopPoint.
Seules les valeurs SLOID sont encore utilisées; pour les StopPoints étrangers, le numéro BPUIC peut encore être utilisé dans la requête et dans la réponse.
<PlaceRef>
<siri:StopPointRef>ch:1:sloid:30813</siri:StopPointRef>
<Name>
<Text>Zürich Kreuzplatz</Text>
</Name>
</PlaceRef>
StopPlaceRef 0:1 Renvoi vers une halte. Seules les valeurs SLOID sont encore utilisées; pour les StopPlaces étrangers, un numéro BPUIC peut encore être utilisé dans la requête et dans la réponse.
<PlaceRef>
<StopPlaceRef>ch:1:sloid:30813</StopPlaceRef>
<Name>
<Text>Zürich Kreuzplatz</Text>
</Name>
</PlaceRef>
GeoPosition 0:1 Géoposition sous forme de longitude/latitude
<PlaceRef>
<GeoPosition>
<siri:Longitude>8.5545</siri:Longitude>
<siri:Latitude>47.365</siri:Latitude>
</GeoPosition>
<Name>
<Text>Zürich Kreuzplatz</Text>
</Name>
</PlaceRef>

Restrictions (StructurePlaceParam)

Élément Cardinalité Description Exemple
Type 0:* Type recherché parmi les objets à fournir.

On distingue les types suivants (PlaceTypeEnumeration):

  • stop
  • adresse
  • puis
  • emplacement
  • topographicPlace

Les principales utilisations sont stop et location. Le POI va gagner en importance avec le temps (notamment pour les parkings et les personnes qui partagent le véhicule).

Désormais, les véhicules en libre-service (scooters électriques, vélos, voitures) et les stations de recharge peuvent être consultés en tant que POI (voir ci-dessous sous le filtre PointOfInterest).

Pour l’adresse, il faut d’abord déterminer le nom exact à l’aide d’une saisie générale. Ensuite, la recherche doit être effectuée exactement avec ce nom et le type «address». C’est seulement à ce moment-là que le code d’adresse est renvoyé. Il s’agit toutefois d’un cas particulier qui ne devrait normalement pas être utilisé. Ni le code d’adresse ni TopographicPlaceRef n’ont de signification pertinente en dehors de la recherche dans OJP.


<Type>stop</Type>

Modes 0:1 Contient un élément d’exclusion booléen. Si la valeur est true, les Modes sont exclus. Dans le cas contraire, ils sont inclus.
Informations complémentaires: opentransportdata.swiss/…/ojptriprequest
<Modes>
    <Exclude>false</Exclude>
    <PtMode>bus</PtMode>
</Modes>
OperatorFilter 0:1 Filtre par exploitant. À l’avenir avec le SBOID. n.c.
TopographicPlaceRef 0:1 Est utilisé pour filtrer par lieu. Si au moins une référence est définie, la recherche ne porte que sur les objets se trouvant dans les lieux concernés.
<TopographicPlaceRef>23011901:2</TopographicPlaceRef>
PointOfInterestFilter 0:1 Ce filtre permet de trouver les lieux correspondants. Décembre 2024 Actuellement, les routages avec différents modes ne sont pas encore pris en charge. Les modes suivants seront disponibles ultérieurement: Les véhicules (scooters électriques, vélos, voitures) et les stations de recharge en libre-service sont accessibles dans un cercle ou un rectangle.
Structure comme dans l’exemple ci-contre:
  • Pour le «jour», toujours «amenity»
  • Sélectionner «Value»escooter_rental», «bicycle_rental», «car_sharing» ou «charge_station».

Attention: la requête doit être combinée avec une GeoRestriction (Circle ou Rectangle), et non avec un Name, une GeoPosition ou une PlaceRef.

<PointOfInterestFilter>
<PointOfInterestCategory>
<OsmTag>
<Tag>amenity</Tag>
<Value>car_sharing</Value>
</OsmTag>
</PointOfInterestCategory>
</PointOfInterestFilter>
NumberOfResults 0:1 Le nombre de résultats.

Important: les chaînes de caractères comme «St. Gallen Haggen» et «St. Gallen, Haggen» sont équivalentes pour la recherche.

Si un groupe de résultats est coupé avec la même probabilité (>0,5), le serveur renvoie tous les résultats. Cela signifie que le nombre effectif de résultats peut différer du résultat souhaité. En effet, pour NumberOfResults=1 et la saisie «St. Gallen, Haggen», il faut effectivement renvoyer deux arrêts: «St. Gallen, Haggen» et «St. Gallen Haggen».

<NumberOfResults>10</NumberOfResults>
NumberOfResultsAfter & NumberOfResultsBefore 0:1 Le nombre de résultats après l’heure spécifiée ou avant, que l’heure soit affichée sur <Origin> ou <Destination>.
<NumberOfResults>10</NumberOfResults>
IncludePtModes 0:1 Informe le service qu’il doit indiquer les modes disponibles pour chaque arrêt. La valeur par défaut est «false».
<IncludePtModes>true</IncludePtModes>

Réponse

Exemple de réponse:

<?xml version="1.0" encoding="UTF-8"?>
<OJP version="2.0" xmlns:siri="http://www.siri.org.uk/siri" xmlns="http://www.vdv.de/ojp">
    <OJPResponse>
        <siri:ServiceDelivery>
            <siri:ResponseTimestamp>2024-11-26T17:03:09.1541119+01:00</siri:ResponseTimestamp>
            <siri:ProducerRef>MENTZ</siri:ProducerRef>
            <OJPLocationInformationDelivery>
                <siri:ResponseTimestamp>2024-11-26T17:03:09.1542196+01:00</siri:ResponseTimestamp>
                <siri:RequestMessageRef>d5e1d0e3-ba3c-4f3e-b068-105f4d001777</siri:RequestMessageRef>
                <siri:DefaultLanguage>de</siri:DefaultLanguage>
                <CalcTime>2</CalcTime>
                <PlaceResult>
                    <Place>
                        <StopPlace>
                            <StopPlaceRef>ch:1:sloid:7000</StopPlaceRef>
                            <StopPlaceName>
                                <Text xml:lang="de">Bern</Text>
                            </StopPlaceName>
                            <PrivateCode>
                                <System>EFA</System>
                                <Value>111055</Value>
                            </PrivateCode>
                            <TopographicPlaceRef>23006351:1</TopographicPlaceRef>
                        </StopPlace>
                        <Name>
                            <Text xml:lang="de">Bern (Bern)</Text>
                        </Name>
                        <GeoPosition>
                            <siri:Longitude>7.43913</siri:Longitude>
                            <siri:Latitude>46.94883</siri:Latitude>
                        </GeoPosition>
                        <Mode>
                           <PtMode>rail</PtMode>
                        </Mode>
                    </Place>
                    <Complete>true</Complete>
                    <Probability>1</Probability>
                </PlaceResult>
<!-- und so weiter und so fort -->
                <PlaceResult>
                    <Place>
                        <StopPlace>
                            <StopPlaceRef>ch:1:sloid:7062</StopPlaceRef>
                            <StopPlaceName>
                                <Text xml:lang="de">Muri b. Bern</Text>
                            </StopPlaceName>
                            <PrivateCode>
                                <System>EFA</System>
                                <Value>111070</Value>
                            </PrivateCode>
                            <TopographicPlaceRef>23006356:3</TopographicPlaceRef>
                        </StopPlace>
                        <Name>
                            <Text xml:lang="de">Muri b. Bern (Muri b. Bern)</Text>
                        </Name>
                        <GeoPosition>
                            <siri:Longitude>7.48641</siri:Longitude>
                            <siri:Latitude>46.93141</siri:Latitude>
                        </GeoPosition>
                        <Mode>
                            <PtMode>tram</PtMode>
                            <siri:TramSubmode>cityTram</siri:TramSubmode>
                        </Mode>
                        <Mode>
                            <PtMode>bus</PtMode>
                            <siri:BusSubmode>localBus</siri:BusSubmode>
                        </Mode>
                    </Place>
                    <Complete>true</Complete>
                    <Probability>0.851</Probability>
                </PlaceResult>
            </OJPLocationInformationDelivery>
        </siri:ServiceDelivery>
    </OJPResponse>
</OJP>
+

La réponse se trouve dans un OJPLocationInformationDelivery Élément emballé:

Élément Cardinalité Description Exemple
siri:ResponseTimestamp 1:1 Timestamp de la réponse
<siri:ResponseTimestamp>2024-11-26T17:03:09.1542196+01:00</siri:ResponseTimestamp>

siri:ProducerRef 0:1 Nom de l’exploitant du système OJP
<siri:ResponseTimestamp>MENTZ</siri:ResponseTimestamp>

siri:RequesteMessageRef 0:1 Référence arbitraire et sans équivoque à la demande ayant donné lieu à cette notification
<siri:RequestMessageRef>d5e1d0e3-ba3c-4f3e-b068-105f4d001777</siri:RequestMessageRef>

siri:DefaultLanguage 0:1 Langue par défaut des éléments textuels.
<siri:DefaultLanguage>de</siri:DefaultLanguage>

CalcTime 0:1 Temps de calcul en millisecondes
<CalcTime>2</CalcTime>

Place 1:1 Comprend les différentes réponses Place
PlaceResult/Place 1:1 Contient les différentes réponses à la place. Voici un exemple de réponse avec un StopPlace. Selon la requête, celle-ci se présente alors un peu différemment. Plus d’informations sur d’autres paramètres ci-dessous.

L’élément PlaceResults est renvoyé pour chaque PlaceResult. Le nombre PlaceResults dépend des paramètres de demande «NumberOfResults», «NumberOfResultsAfter» et «NumberOfResultsBefore». Si la demande est effectuée sans ces paramètres, le routeur peut déterminer lui-même le nombre.

<PlaceResult>
<Place>
<StopPlace>
<StopPlaceRef>ch:1:sloid:7000</StopPlaceRef>
<StopPlaceName>
<Text xml:lang="de">Bern</Text>
</StopPlaceName>
...
<TopographicPlaceRef>23006351:1</TopographicPlaceRef>
</StopPlace>
<Name>
<Text xml:lang="de">Bern (Bern)</Text>
</Name>
<GeoPosition>
<siri:Longitude>7.43913</siri:Longitude>
<siri:Latitude>46.94883</siri:Latitude>
</GeoPosition>
<Mode>
<PtMode>rail</PtMode>
</Mode>
</Place>
...
</PlaceResult>
 Complete 1:1 Indique si la place actuelle est complète ou si elle peut être affinée. En cas de Refinement, le «Ref» doit être à nouveau saisi dans une LocationInformationRequest pour obtenir une réponse avec tous les détails.
<Complete>true</Complete>
Probability 1:1 Probabilité que la Location correspondante corresponde à celle recherchée.

Les résultats sont classés par ordre décroissant de probabilité (le plus probable en premier).

La sélection des meilleurs candidats pour la liste des résultats est déterminée en fonction de la correspondance entre le texte d’entrée et l’ensemble des données. La probabilité est déterminée à partir du nombre de trigrammes concordants dans lesquels les termes peuvent être décomposés et du nombre de trigrammes restants qui ne coïncident pas. En cas de correspondance complète, c’est-à-dire sans résultat, il y a un résultat complet et le candidat obtient la probabilité maximale de 1. S’il reste un résultat restant, des points sont retirés. Les résultats ainsi trouvés peuvent ensuite être influencés par différents critères d’évaluation, la qualité et l’ordre de tri. Les résultats peuvent être modifiés en fonction de la région (code de commune), du type (arrêt, adresse, lieu, POI, etc.), du moyen de transport desservant ou d’une valeur pertinente.

<Probability>0.927999973</Probability>

 

Mode 0:* Modes pertinents pour la Location
<Mode>
<PtMode>tram</PtMode>
<siri:TramSubmode>cityTram</siri:TramSubmode>
</Mode>
<Mode>
<PtMode>bus</PtMode>
<siri:BusSubmode>localBus</siri:BusSubmode>
</Mode>

Localisation (PlaceStructure)

Élément Cardinalité Description Exemple
StopPlace 1:1 Un arrêt au sens physique du terme
<StopPlace>
<StopPlaceRef>ch:1:sloid:7483</StopPlaceRef>
<StopPlaceName>
<Text xml:lang="de">Spiez</Text>
</StopPlaceName>
<TopographicPlaceRef>23006768:5</TopographicPlaceRef>
</StopPlace>
TopographicPlace 1:1

Un lieu avec un nom et un identifiant.

<TopographicPlace>
<TopographicPlaceCode>suburbID:8136088:6:Bernhardsdorf:5439812:10881110:MRCV</TopographicPlaceCode>
<TopographicPlaceName>
<Text xml:lang="de">Bernhardsdorf</Text>
</TopographicPlaceName>
</TopographicPlace>
PointOfInterest 1:1 Un point d’intérêt. Attention: Aucun point d’intérêt n’est disponible pour le moment.

Cet attribut n’est pas pris en charge actuellement.

<Place>
<PointOfInterest>
<PublicCode>72215</PublicCode>
<PointOfInterestCategory>
<OsmTag>
<Tag>service</Tag>
<Value>hairdresser</Value>
</OsmTag>
</PointOfInterestCategory>
<TopographicPlaceRef>23006351:-1</TopographicPlaceRef>
</PointOfInterest>
<Name>
<Text xml:lang="de">Hair (Bern)</Text>
</Name>
...
</Place>
Address 1:1 Une adresse
<Address>
<Name>
<Text xml:lang="de">Zürich, Staffelstrasse 12</Text>
</Name>
<PostCode/> <!-- empty tag -->
<TopographicPlaceName>Zürich</TopographicPlaceName>
<TopographicPlaceRef>23026261:1500000003</TopographicPlaceRef>
<Street>Staffelstrasse</Street>
<HouseNumber>12</HouseNumber>
</Address>
Name 1:1 Le nom du lieu
<Name>
<Text xml:lang="de">Zürich</Text>
</Name>
GeoPosition 1:1 Cet exemple montre ce qui revient. Peut également être fourni avec d’autres éléments, par exemple StopPlace.
<GeoPosition>
<siri:Longitude>7.43165</siri:Longitude>
<siri:Latitude>46.94308</siri:Latitude>
</GeoPosition>

Lieu

Élément Cardinalité Description Exemple
StopPlaceRef 1:1 La référence de l’arrêt, une valeur SLOID.
<StopPlaceRef>ch:1:sloid:8052</StopPlaceRef
StopPlaceName 1:1 Nom de la halte
<StopPlaceName>
<Text>Bern Tiefenau</Text>
</StopPlaceName>
TopographicPlaceRef 1:1 La référence du lieu.
<TopographicPlaceRef>23006351:1</TopographicPlaceRef>
TopographicPlaceName 1:1 Le nom du lieu
<TopographicPlaceName>
<Text xml:lang="de">Bernhardsdorf</Text>
</TopographicPlaceName>
PointOfInterest 1:1 La référence du lieu.
<PointOfInterest>
<PublicCode>75825</PublicCode>
<PointOfInterestCategory>
<OsmTag>
<Tag>service</Tag>
<Value>hairdresser</Value>
</OsmTag>
</PointOfInterestCategory>
<TopographicPlaceRef>23006627:-1</TopographicPlaceRef>
</PointOfInterest>