Skip to content

Location Information Service

Location Information Service

Le Location Service répond à une requête en indiquant un lieu. Les principales données d’entrée sont les suivantes:

  • Texte
  • Types d’objets autorisés
  • Pondération/restrictions géographiques
  • Autres restrictions

Le résultat fourni est une liste d’objets comportant un nom, une position géographique, des attributs et un degré de probabilité.

Si la LocationInformationRequest est utilisée sans LocationName, mais avec une GeoPosition, un Circle ou un Rectangle, seul le type=“stop“ est supporté. De plus, la GeoPosition avec le type=“address“ permet d’obtenir une adresse précise avec la HausnummerRequest.

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-09T08:00:00Z</RequestTimestamp>
			<RequestorRef>IRMA</RequestorRef>
			<ojp:OJPLocationInformationRequest>
				<RequestTimestamp>2020-01-09T08:00:00Z</RequestTimestamp>
				<MessageIdentifier>4711</MessageIdentifier>
				<ojp:InitialInput>
					<ojp:LocationName>Bern</ojp:LocationName>
				</ojp:InitialInput>
				<ojp:Restrictions>
					<ojp:Type>stop</ojp:Type>
					<ojp:IncludePtModes>true</ojp:IncludePtModes>
				</ojp:Restrictions>
			</ojp:OJPLocationInformationRequest>
		</ServiceRequest>
	</OJPRequest>
</OJP>
Élément Cardialité Description Exemple
1:1 Timestamp de la requête. De préférence, heure UTC
<RequestTimestamp>2020-01-09T08:00:00Z</RequestTimestamp>
MessageIdentifier 0:1 ID explicite du message. Nous vous prions d’utiliser des ID croissants de manière strictement monotone.
<MessageIdentifier>4711</MessageIdentifier>
ojp:InitialInput/ojp:LocationName 0:1 Nom de l’objet. Si aucun nom n’est indiqué, la recherche est effectuée à partir d’autres critères.

Lorsque différentes appellations sont courantes, il est possible de réaliser la recherche selon chacune d’elles. P. ex., la recherche fonctionne aussi bien en indiquant «Basel» que «Bâle CFF». Pour les haltes multilingues, la recherche fonctionne même si le nom de l’arrêt est indiqué dans une seule langue. P. ex. «Biel/Bienne» est trouvée aussi bien avec la requête «Biel» qu’avec la requête «Bienne».

<ojp:InitialInput>
	<ojp:LocationName>Bern</ojp:LocationName>
</ojp:InitialInput>
ojp:InitialInput/ojp:GeoPosition 0:1 Position recherchée avec les coordonnées géographiques (WGS84).
<ojp:InitialInput>
	<ojp:GeoPosition>
		<Longitude>8.5545</Longitude>
		<Latitude>47.365</Latitude>
	</ojp:GeoPosition>
</ojp:InitialInput>
ojp:InitialInput/GeoRestriction/Circle 0:1 Restriction de la recherche à un cercle défini. Cela permet p. ex. d’afficher, à condition de choisir le type approprié, toutes les haltes dans un cercle donné. Coordonnées WGS84.
<ojp:GeoRestriction>
	<ojp:Circle>
		<ojp:Center>
			<Longitude>8.5545</Longitude>
			<Latitude>47.365</Latitude>
		</ojp:Center>
		<ojp:Radius>500</ojp:Radius>
	</ojp:Circle>
</ojp:GeoRestriction>
ojp:InitialInput/GeoRestriction/Rectangle 0:1 Restriction de la recherche à un rectangle défini. Coordonnées WGS84.
<ojp:InitialInput>
	<ojp:GeoRestriction>
		<ojp:Rectangle>
			<ojp:UpperLeft>
				<Longitude>8.54</Longitude>
				<Latitude>47.37</Latitude>
			</ojp:UpperLeft>
			<ojp:LowerRight>
				<Longitude>8.57</Longitude>
				<Latitude>47.36</Latitude>
			</ojp:LowerRight>
		</ojp:Rectangle>
	</ojp:GeoRestriction>
</ojp:InitialInput>
ojp:/ojp:PlaceRef 0:1 Référence à un lieu. Cf. tableau distinct
ojp:Restrictions 0:1 Restrictions à utiliser. Cf. tableau distinct

Restrictions

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

Les différents types sont les suivants:

  • stop
  • address
  • poi
  • coord
  • topographicPlace

Les principales utilisations sont stop et lcoord. Le poi deviendra plus important au fil du temps (notamment pour les parkings et les partageurs).

Désormais, les véhicules partagés (“sharing” – scooters électriques, vélos, voitures) et les stations de recharge peuvent être consultés en tant que POI (voir sous ojp:PointOfInterestFilter ci-dessous).

Pour address, le nom exact du lieu doit d’abord être déterminé à l’aide de données générales. Il faut alors rechercher exactement ce nom et le type “address”. Ce n’est qu’alors que le code d’adresse sera renvoyé. Toutefois, il s’agit d’un cas particulier qui ne devrait normalement pas être utilisé. Ni le code d’adresse ni le TopographicPlaceRef n’ont de sens en dehors des recherches effectuées dans l’OJP.

<ojp:Type>stop</ojp:Type>
ojp:Usage 0:* Indique de quelle manière le lieu (Place) est utilisé.

Les valeurs possibles sont les suivantes:

  • origin
  • via
  • destination

Cet attribut n’est pas pris en charge.

n/a
ojp:PtModes  0:1 Comporte un élément d’exclusion booléen. Si la valeur est «true», les Modes sont exclus. Dans le cas contraire, ils sont inclus. L’utilisation de cet élément est décrite dans une rubrique distincte.

Cf. également la rubrique sur le PtMode.

<ojp:PtModes>
	<ojp:Exclude>true</ojp:Exclude>
	<ojp:PtMode>bus</ojp:PtMode>
	<siri:BusSubmode>localBusService</siri:BusSubmode>
</ojp:PtModes>

 

ojp:OperatorFilter 0:1 Filtre par exploitant.

Cet attribut n’est pas pris en charge.

n/a
ojp:TopographicPlaceRef 0:1 Filtre en fonction d’une référence à un lieu. Si au moins une référence est spécifiée, le service ne fournit que des objets dans les localités correspondantes.
<ojp:TopographicPlaceRef>23011901:2</ojp:TopographicPlaceRef>
ojp:PointOfInterestFilter 0:1 Depuis août 2022, ce filtre peut être utilisP pour consulter les véhicules partagés (scooters électriques, vélos, voitures) et les stations de recharge dans un périmètre ou un rectangle.

Structure comme le montre l’exemple à droite :

  • Pour ojp:Tag : toujours amenity
  • Pour ojp:Value : au choix escooter_rental, bicycle_rental, car_sharing ou charging_station.

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

<ojp:PointOfInterestFilter>
  <ojp:PointOfInterestCategory>
    <ojp:OsmTag>
      <ojp:Tag>amenity</ojp:Tag>
      <ojp:Value>escooter_rental</ojp:Value>
    </ojp:OsmTag>
  </ojp:PointOfInterestCategory>
</ojp:PointOfInterestFilter>
ojp:PtModes>

 

ojp:Language 0:1 La langue préférée pour les valeurs de retour.

Prévu pour une version ultérieure.

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

Important : Si un groupe de résultats est coupé avec une probabilité égale (>0,5), le serveur renvoie tous les résultats. C’est-à-dire que le nombre réel de résultats peut s’écarter du résultat souhaité. La raison en est qu’avec NumberOfResults=1 et l’entrée “St. Gallen, Haggen”, 2 arrêts doivent effectivement être retournés : “St. Gallen, Haggen” et “St. Gallen Haggen”.

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

PlaceRef

 

Élément Cardinalité Description Exemple
ojp: StopPointRef 0:1 Renvoi vers un ScheduledStopPoint.

Il est déconseillé d’utiliser cet élément car on ne sait pas avec certitude quel ID est requis.

<ojp:PlaceRef>
	<StopPointRef>8530813</StopPointRef>
	<ojp:LocationName>
		<ojp:Text>Zürich Kreuzplatz</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:StopPlaceRef 0:1 Renvoi vers une halte. Repose sur le numéro DiDok. L’utilisation de StopPlaces permet d’obtenir très rapidement des résultats.
<ojp:PlaceRef>
	<ojp:StopPlaceRef>8530813</ojp:StopPlaceRef>
	<ojp:LocationName>
		<ojp:Text>Zürich Kreuzplatz</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:GeoPosition 0:1 Géoposition sous forme de longitude/latitude.
<ojp:PlaceRef>
	<ojp:GeoPosition>
		<Longitude>8.5545</Longitude>
		<Latitude>47.365</Latitude>
	</ojp:GeoPosition>
	<ojp:LocationName>
		<ojp:Text>Zürich Kreuzplatz</ojp:Text>
	</ojp:LocationName>
</ojp:PlaceRef>
ojp:PlaceRef/ojp:LocationName 0:1 Est ignoré. n/a

PTMode

Les PTModes sont les modes de transport.

Les valeurs disponibles au niveau des PTModes sont les suivantes (il en existe davantage, mais elles n’apparaissent pas chez nous, et même certaines de celles qui sont énumérées ci-dessous ne sont pas encore utilisées pour l’instant):

  • inconnu
  • rail
  • coach
  • suburbanRail
  • urbanRail
  • metro
  • underground
  • bus
  • trolleyBus
  • tram
  • water
  • air
  • telecabin
  • funicular
  • taxi
  • selfDrive
  • all

Les SubModes sont les suivants:

AirSubmode

  • Non utilisé pour l’instant

BusSubmode

  • regionalBus
  • expressBus
  • localBus
  • postBus
  • sightseeingbus
  • shuttleBus
  • railReplacementBus
  • demandAndResponseBus

CoachSubmode

  • internationalCoachService
  • nationalCoachService
  • regionalCoachService
  • touristCoachService

FunicularSubmode

  • funicular

MetroSubmode

  • urbanRailway
  • metro

TramSubmode

  • cityTram
  • regionalTram
  • localTramService
  • sightseeingTram

TelecabinSubmode

  • chairLift
  • dragLift
  • smallTelecabin
  • lift
  • telecabin
  • cableCar

RailSubmode

  • hightSpeedRailService
  • longDistanceTrain
  • interRegionalRailService
  • carTransportRailService
  • sleeperRailService
  • regionalRail
  • touristRailway
  • railShuttle
  • suburbanRailway
  • replacementRailService
  • local
  • interbational (avec un «b» pour l’instant; sera modifié ultérieurement)

WaterSubmode

  • internationalCarFerryService
  • nationalCarFerryService
  • regionalCarFerryService
  • localCarFerryService
  • internationalPassengerFerry
  • regionalPassengerFerry
  • localPassengerFerry
  • postBoat
  • trainFerry

 

Response

<?xml version="1.0" encoding="UTF-8"?>
<siri:OJP xmlns:siri="http://www.siri.org.uk/siri" xmlns:ojp="http://www.vdv.de/ojp" version="1.0">
	<siri:OJPResponse>
		<siri:ServiceDelivery>
			<siri:ResponseTimestamp>2020-03-09T09:12:49Z</siri:ResponseTimestamp>
			<siri:ProducerRef>OJPCH_test</siri:ProducerRef>
			<siri:Status>true</siri:Status>
			<ojp:OJPLocationInformationDelivery>
				<siri:ResponseTimestamp>2020-03-09T09:12:49Z</siri:ResponseTimestamp>
				<siri:RequestMessageRef>4711</siri:RequestMessageRef>
				<siri:Status>true</siri:Status>
				<ojp:CalcTime>53</ojp:CalcTime>
				<ojp:Location>
					<ojp:Location>
						<ojp:StopPlace>
							<ojp:StopPlaceRef>8571260</ojp:StopPlaceRef>
							<ojp:StopPlaceName>
								<ojp:Text>Aarberg, Bernfeld</ojp:Text>
							</ojp:StopPlaceName>
							<ojp:TopographicPlaceRef>23006301:1</ojp:TopographicPlaceRef>
						</ojp:StopPlace>
						<ojp:LocationName>
							<ojp:Text xml:lang="de">Aarberg, Bernfeld (Aarberg)</ojp:Text>
						</ojp:LocationName>
						<ojp:GeoPosition>
							<siri:Longitude>7.28473</siri:Longitude>
							<siri:Latitude>47.04372</siri:Latitude>
						</ojp:GeoPosition>
					</ojp:Location>
					<ojp:Complete>true</ojp:Complete>
					<ojp:Probability>0.922999978</ojp:Probability>
					<ojp:Mode>
						<ojp:PtMode>bus</ojp:PtMode>
						<siri:BusSubmode>localBusService</siri:BusSubmode>
					</ojp:Mode>
				</ojp:Location>
<!---- und so weiter und so weiter -->
				<ojp:Location>
					<ojp:Location>
						<ojp:StopPlace>
							<ojp:StopPlaceRef>8578094</ojp:StopPlaceRef>
							<ojp:StopPlaceName>
								<ojp:Text>Biberist, Bernstrasse</ojp:Text>
							</ojp:StopPlaceName>
							<ojp:TopographicPlaceRef>23019513:1</ojp:TopographicPlaceRef>
						</ojp:StopPlace>
						<ojp:LocationName>
							<ojp:Text xml:lang="de">Biberist, Bernstrasse (Biberist)</ojp:Text>
						</ojp:LocationName>
						<ojp:GeoPosition>
							<siri:Longitude>7.55428</siri:Longitude>
							<siri:Latitude>47.18031</siri:Latitude>
						</ojp:GeoPosition>
					</ojp:Location>
					<ojp:Complete>true</ojp:Complete>
					<ojp:Probability>0.920000017</ojp:Probability>
					<ojp:Mode>
						<ojp:PtMode>bus</ojp:PtMode>
						<siri:BusSubmode>localBusService</siri:BusSubmode>
					</ojp:Mode>
				</ojp:Location>
			</ojp:OJPLocationInformationDelivery>
		</siri:ServiceDelivery>
	</siri:OJPResponse>
</siri:OJP>

La réponse est fournie dans un élément ojp:OJPLocationInformationDelivery.

Élément Cardinalité Description Exemple
siri:ResponseTimestamp 1:1 Timestamp de la réponse.
<siri:ResponseTimestamp>2020-04-03T14:47:59Z</siri:ResponseTimestamp>
siri:RequesteMessageRef 0:1 C’est ici qu’est référencé le message de requête.
<siri:RequestMessageRef>756</siri:RequestMessageRef>
siri:Status 1:1 Statut de la réponse. «true» signifie que la requête a été traitée.
<siri:Status>true</siri:Status>
ojp:CalcTime 1:1 Temps de calcul en millisecondes.
<ojp:CalcTime>939</ojp:CalcTime>
ojp:Location 1:1 Comporte les différentes réponses ojp:Location.
ojp:Location/ojp:Location 1:1 Réponses. Le fait que deux éléments d’un niveau hiérarchique différent portent le même nom n’est pas très heureux, mais c’est comme ça pour l’instant.
<ojp:Location>
	<ojp:StopPlace>
		<ojp:StopPlaceRef>8508052</ojp:StopPlaceRef>
		<ojp:StopPlaceName>
			<ojp:Text>Bern Tiefenau</ojp:Text>
		</ojp:StopPlaceName>
		<ojp:TopographicPlaceRef>23006351:1</ojp:TopographicPlaceRef>
	</ojp:StopPlace>
	<ojp:LocationName>
		<ojp:Text xml:lang="de">Bern Tiefenau (Bern)</ojp:Text>
	</ojp:LocationName>
	<ojp:GeoPosition>
		<siri:Longitude>7.45020</siri:Longitude>
		<siri:Latitude>46.97274</siri:Latitude>
	</ojp:GeoPosition>
</ojp:Location>
 ojp:Complete 1:1 Indique si la Location actuelle est complète ou si elle doit encore être affinée. En cas de Refinement, elle doit être à nouveau saisie de manière plus précise dans une LocationInformationRequest.
<ojp:Complete>true</ojp:Complete>
ojp:Probability 1:1 Probabilité que la Location proposée corresponde à celle qui est 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 après avoir fait correspondre le texte d’entrée avec l’ensemble des données. La probabilité est déterminée sur la base du nombre de trigrammes correspondants dans lesquels les termes peuvent être décomposés et le reste qui ne correspond pas. S’il y a une concordance complète, c’est-à-dire qu’il n’y a pas de reste, le candidat est une concordance complète et reçoit la probabilité maximale 1. S’il y a encore un reste, cela entraîne une déduction de points. Les résultats ainsi obtenus peuvent ensuite être influencés par différents critères d’évaluation, de qualité et d’ordre de tri. Les résultats peuvent être modifiés par région (code de la municipalité), par type (arrêt, adresse, ville, POI,…), par moyen de transport ou par une valeur de pertinence.

<ojp:Probability>0.927999973</ojp:Probability>

 

ojp:Mode 0:* Modes pertinents pour la Location.
<ojp:Mode>
	<ojp:PtMode>rail</ojp:PtMode>
	<siri:RailSubmode>unknown</siri:RailSubmode>
</ojp:Mode>
<ojp:Mode>
	<ojp:PtMode>bus</ojp:PtMode>
	<siri:BusSubmode>localBusService</siri:BusSubmode>
</ojp:Mode>

ojp:Location

Une Location peut être l’un des éléments suivants:

  • StopPoint: halte ou voie
  • StopPlace: halte physique (arrêt, gare)
  • TopographicPlace: lieu
  • PointOfInterest: point d’intérêt (POI). Attention: actuellement, aucun POI n’est disponible.
  • Address: adresse
Élément Cardinalité Description Exemple
ojp:StopPlace 0:1 Halte physique (arrêt, gare)
<ojp:StopPlace>
	<ojp:StopPlaceRef>8508052</ojp:StopPlaceRef>
	<ojp:StopPlaceName>
		<ojp:Text>Bern Tiefenau</ojp:Text>
	</ojp:StopPlaceName>
	<ojp:TopographicPlaceRef>23006351:1</ojp:TopographicPlaceRef>
</ojp:StopPlace>
ojp:StopPoint 0:1 Halte ou voie

Pour l’instant, aucun StopPlace ne devrait apparaître.

Cet attribut n’est pas pris en charge actuellement.

ojp:TopographicPlace 0:1 Lieu
<ojp:TopographicPlace>
	<ojp:TopographicPlaceCode>suburbID:8136088:6:Bernhardsdorf:5439812:10881110:MRCV</ojp:TopographicPlaceCode>
	<ojp:TopographicPlaceName>
		<ojp:Text xml:lang="de">Bernhardsdorf</ojp:Text>
	</ojp:TopographicPlaceName>
</ojp:TopographicPlace>
ojp:PointOfInterest 0:1 Point d’intérêt (POI). Attention: actuellement, aucun POI n’est disponible.

Cet attribut n’est pas pris en charge actuellement.

ojp:Address 0:1 Adresse
<ojp:Address>
	<ojp:AddressCode>streetID:382:13:23006351:1:Sempachstrasse:Bern:Sempach-strasse::Sempachstrasse:3014:ANY:DIVA_SINGLEHOUSE:830639:6064058:MRCV:sbb</ojp:AddressCode>
	<ojp:AddressName>
		<ojp:Text xml:lang="de">Bern, Sempachstrasse 13</ojp:Text>
	</ojp:AddressName>
	<ojp:PostCode>3014</ojp:PostCode>
	<ojp:TopographicPlaceName>Bern</ojp:TopographicPlaceName>
	<ojp:TopographicPlaceRef>23006351:1</ojp:TopographicPlaceRef>
	<ojp:Street>Sempachstrasse</ojp:Street>
	<ojp:HouseNumber>13</ojp:HouseNumber>
</ojp:Address>

 

ojp:LocationName 0:1 Nom du lieu
<ojp:LocationName>
	<ojp:Text xml:lang="de">Bernina Suot (Pontresina)</ojp:Text>
</ojp:LocationName>

 

ojp:GeoPosition 0:1 Coordonnées géographiques

 

L’exemple montre ce qui revient si aucune coordonnée n’est disponible. La précision est alors réglée sur la moitié de la circonférence du monde. Bien sûr, nous essayons d’éviter de tels cas.

<ojp:GeoPosition>
	<siri:Longitude>0.0</siri:Longitude>
	<siri:Latitude>0.0</siri:Latitude>
	<siri:Precision>20000000</siri:Precision>
</ojp:GeoPosition>

 

ojp:Location/ojp:StopPoint

Cet attribut n’est pas pris en charge actuellement.

ojp:Location/ojp:StopPlace

Élément Cardinalité Description Exemple
ojp:StopPlaceRef  1:1 Référence de la halte. Actuellement: numéro DiDok
ojp:StopPlaceName 1:1 Nom de la halte
<ojp:StopPlaceName>
	<ojp:Text>Bern Tiefenau</ojp:Text>
</ojp:StopPlaceName>

 

ojp:TopographicPlaceRef 1:1 Référence du lieu
<ojp:TopographicPlaceRef>23006351:1</ojp:TopographicPlaceRef>

ojp:Location/ojp:TopographicPlace

Élément Cardinalité Description Exemple
ojp:TopographicPlaceRef  1:1 Référence du lieu
<ojp:TopographicPlaceCode>suburbID:8136088:6:Bernhardsdorf:5439812:10881110:MRCV
</ojp:TopographicPlaceCode>
ojp:TopographicPlaceName 1:1 Nom du lieu
<ojp:TopographicPlaceName>
	<ojp:Text xml:lang="de">Bernhardsdorf</ojp:Text>
</ojp:TopographicPlaceName>