RATP - Open Data Api - Web Service Informations Voyageur

 
RATP - Open Data Api - Web Service Informations Voyageur
 
© RATP
 

1. Documentation
1.1 Généralités
1.1.1 WSDL
1.1.2 Notation et Abréviations
1.1.2.1 Cardinalité
1.1.2.2 Format
1.1.2.3 Type / Classe
1.2 Modèle
1.2.1 Glossaire
1.2.2 Open data api <> TransModel - Siri
1.2.3 Images
1.2.4 Dates
1.2.5 Tableaux
1.3 Méthodes - Statut
1.3.1 getVersion
1.4 Méthodes - Structure
1.4.1 getLines
1.4.1.1 Domaine
1.4.1.2 code STIF - Equivalence Ligne Théorique / temps Réel
1.4.1.3 Arguments
1.4.1.3.1 Recherche par id
1.4.1.3.2 Recherche par critère id, code, domaine ou réseau
1.4.1.4 Réponse
1.4.2 getDirections
1.4.2.1 Arguments
1.4.2.2 Réponse
1.4.3 getStations
1.4.3.1 Arguments
1.4.3.1.1 Recherche par id de Station
1.4.3.1.2 Recherche par Ligne / Direction
1.4.3.1.3 Recherche par nom de Station
1.4.3.1.4 Recherche Géographique
1.4.3.1.4.1 Critère Point Géographique
1.4.3.1.4.2 Critère Coordonnées X,Y Lambert2
1.4.3.1.4.3 Critère Distances
1.4.3.1.5 Recherche par id de StationArea
1.4.3.1.6 Max et Tri
1.4.3.2 Réponse
1.4.4 getStationAreas
1.4.4.1 Arguments
1.4.4.1.1 Recherche par id de StationArea
1.4.4.1.2 Recherche par nom de StationArea
1.4.4.1.3 Recherche par id de StationAcces
1.4.4.1.4 Recherche par id de Station
1.4.4.1.5 Recherche Géographique
1.4.4.1.5.1 Critère Point Géographique
1.4.4.1.5.2 Critère Coordonnées X,Y Lambert2
1.4.4.1.5.3 Critère Distance
1.4.4.2 Réponse
1.5 Méthodes - Horaires
1.5.1 getMissionsNext
1.5.1.1 Arguments
1.5.1.2 Réponse
1.5.1.3 Interprétation des informations temps Réel
1.5.1.3.1 Etape 1
1.5.1.3.1.1 Propriétés déduites
1.5.1.3.1.2 [sn] stations[1].name
1.5.1.3.2 Etape 2
1.5.1.3.2.1 Propriétés déduites
1.5.1.3.2.2 [sd] Station desservie (stationsStops[0])
1.5.1.3.2.3 [cn] CallNote
1.5.2 getMissionsFirstLast
1.5.3 getMissionsFrequency
1.5.3.1 Arguments
1.5.3.2 Réponse
1.5.4 getMission
1.5.4.1 Arguments
1.5.4.2 Réponse
2. Modèle des Classes
2.1 Modèle principal
2.1.1 Structure
2.1.1.1 Reseau
2.1.1.2 Line
2.1.1.2 Direction
2.1.1.4 Station
2.1.1.5 StationArea
2.1.1.6 StationAcces
2.1.1.7 Mission
2.1.1.8 Tarif
2.2 Web Service Response
2.2.1 Structure
2.2.1.1 WrDirections
2.2.1.2 WrStations
2.2.1.3 WrStationAreas
2.2.2 Horaires
2.2.2.1 WrMissions
2.2.2.2 WrMission
2.3 Classes élémentaires
2.3.1 bool
2.3.2 Numérique
2.3.2.1 decimal
2.3.2.2 entier
2.3.3 Date et Heure (Chaîne de caractères)
2.3.3.1 date
2.3.3.2 heure
2.3.4 Code et Texte (Chaîne de caractères)
2.3.4.1 code
2.3.4.2 texte
2.3.5 Expressions sur code ou texte (Chaîne de caractères)
2.3.5.1 exp
2.3.5.2 expLine
2.3.5.3 expStation
2.3.5.4 expGeoPointStation
2.3.5.5 expGeoPointAdresse
2.4 Enumérations
2.4.1 Structure
2.4.1.1 reseauOrGroup
2.4.1.1.1 reseauPrimaire
2.4.1.1.2 reseauGroup
2.4.1.2 lineRealmCrit
2.4.1.2.1 lineRealm
2.4.1.2.2 lineRealmExt
2.4.1.3 directionSensCrit
2.4.1.3.1 directionSens
2.4.1.3.2 directionSensExt
2.4.2 Web Service Response
2.4.2.1 wrAmbiguityMsg

1. Documentation
 
Cette documentation décrit les méthodes du Web Service Infos Voyageur (Open data api) de la RATP à savoir :
  • Structure : lignes et stations du réseau RATP
  • Horaires : Prochains passages, 1er/dernier passages et fréquences de passage
Cette documentation est completée par un exemple d'utilisation : Exemple d'utilisation
Les propriétés des classes sont décrites dans la javadoc avec la forme suivante : [cardinalité, format] 
0..1Aucune ou une instance
1..1 ou 1Une instance exactement
0..* ou *Aucune ou plusieurs instances
1..*Une instance ou plusieurs (au moins une)
 @web   Cardinalité 
NNumérique
N.N.NNo de version
yyyyMMddHHmmFormat de date/heure (eg. 200001011200) - Heure de Paris
codeCode alphanumérique (pas d'accent, peut contenir les caractères -._)
texteFormat de date/heure (eg. 20000101000000)
entierClasse élémentaire (en italique)
[enum]Enumération (en italique encadré avec [ ])
TypeClasse composée
 

Le domaine des transports en commun utilise un vocabulaire spécifique que l'on retrouve dans Open data api sous forme de classes : 
  • Réseau : Groupement de lignes tel que 1 ligne n'appartient qu'à 1 seul réseau (RER, Métro, ...) 
     
  • Réseau ou groupe : Groupement de lignes, 1 ligne peut appartenir à plusieurs groupes 
     
  • Ligne : Trajet, itinéraire régulier emprunté par des missions 
    • Elle fait partie d'un réseau.
    • Elle dessert plusieurs stations.
    • Elle peut avoir deux directions ou une (ligne circulaire)
     
  • Direction : Sens, direction générale (Aller ou Retour - Est ou Ouest - Coté de ligne - ...) 
    • Son sens l'identifie et a pour valeur "A" ou "R" : cf. [dir.Sens]
    • Elle peut avoir une fin de ligne ou plusieurs (cas des lignes à fourche).
    • Son nom reprend en général le nom de toutes ses fins de ligne.
     
  • Station :  
    • Elle est rattachée à une ligne.
    • Dans le cas d'une boucle, elle n'est présente que dans une direction (eg. 7bis Danube).
     
  • StationEndLine / Fin de ligne : Station de fin de ligne, peut mais n'est pas forcément un terminus de mission 
     
  • StationEnd / Terminus : Destination, station de fin de mission 
     
  • StationArea :  
    • Une aire de stations est le regroupement des stations situées dans une même zone géographique ayant strictement le même nom.
    • Les stations d'une aire de stations sont des stations ferrées (reseauGroup=ferretram). Cette notion d'aire de stations ne s'applique donc pas aux bus.
    • Elle est rattachée à plusieurs stations.
     
  • Mission : Course 
    • Elle est liée à une direction et plus précisément à une fin de ligne
    • Elle a un terminus qui est la dernière station desservie de sa liste de stations.
ReseauNetworkRéseau : The total collection of physical ROUTEs, operated by an Operator or under control of a Transport authority.
CodeNetworkRef<provider>:GroupOfLines::<wsiv Reseau/code>:LOC
LineLine 
AnnotatedLineRef
Ligne : A group of ROUTEs which is known to the public by a common name or number.
IdLineRef<provider>:Line::<wsiv Line/id>:LOC
NameLineName
RealmMonitored<wsiv Line/realm>=r
Directions 
Destinations
wsiv Direction.StationsEndLine 
SIRI Line.Destinations : associés à une ligne - ensemble incomplet des stationsEnd possible
DirectionDirection
SensDirectionRef<provider>:Direction::<wsiv Direction/line/id>_<wsiv Direction/sens>:LOC
NameDirectionName
StationsEndLine
StationStopPoint 
AnnotatedStopPointRef
Point d'Arrêt : A POINT where passengers can board or alight from vehicles.
IdStopPointRef<provider>:StopPoint:SP:<wsiv Station/line/id>_<wsiv Station/id>:LOC
NameStopName
LineLines[0]Contrairement à SIRI, une station wsiv est liée à UNE ligne
StationStart/EndOrigin/DestinationOrigine/Destination : Initial/Final location of a TRIP.
IdOrigin/DestinationRef<provider>:StopPoint:SP:<wsiv Station/line/id>_<wsiv Station/id>:LOC
NameOrigin/DestinationName
StationAreaStopAreaStation : A group of STOP POINTs close to each other.
 
MissionVehicleJourney 
MonitoredVehicleJourney
Course : A particular Journey of a vehicle on a particular DAY TYPE.
IdJourneyPatternRef<provider>:JourneyPattern::<wsiv Mission/line/id>_<wsiv Mission/id>:LOC
CodeVehicleJourneyName
LineLineRef-PublishedLineName
Line.ReseauVehicleMode
DirectionDirectionRef-Name
Stations[0/LAST]Origin/DestinationRef-NameTODO: Ajouter propriétés StationStart/End
Mission
Stations*
ServiceJourney 
MVJ.MonitoredCall
Course commerciale : A particular Journey of a vehicle on a particular DAY TYPE.
S.[0]DestinationDisplay
S.Messages[0]CallNoteChamps déduits du message : VehicleAtStop, PlatformTraversal, SignalStatus, DepartureStatus, ArrivalBoardingActivity, DepartureBoardingActivity
S.Dates[0]ExpectedDepartureTime
S.Platforms[0]DeparturePlatformName
PerturbationGeneralMessage
Title+Message.TextContent.Message
Les classes Line et Reseau sont associées à des images disponibles sur le serveur wsiv. 
L'Url racine de ces images est précisée dans wsiv.properties. 
L'objet Calendar n'est pas utilisé pour des raisons de performance. 
Ci après le résultat d'un test consistant à ajouter dans une liste 10 000 objets Calendar et son "équivalent" String yyyyMMddHHmm. 
 
Calendar: Total time: 125 ms Memory Used: 3 Mo
String:   Total time:  16 ms Memory Used: 136 Ko
 
Concernant les opérations Horaires, nous sommes amenés à créer des listes d'objets Date conséquentes... 
 
Toutes les dates utilisées dans Open data api sont des chaînes (String) au format yyyyMMddHHmm. 
 
Les 3 traductions techniques suivantes d'un tableau (stations) sans informations sont équivalentes fonctionellement :
  • stations=null
  • stations.size=0
  • stations.size=1 stations[0]=null
Dans le cas d'absence d'information, Open data api retourne toujours un tableau null (jamais de tableau avec 0 éléments). 
TODO : vérifier le respect de cette règle par Open data api dès la version 2.6.0 
Avec la dernière version d'Axis constate t'on une réponse SOAP surprenante?
 
 
Traduction XML SOAP des tableaux 
Le XML SOAP traduisant un tableau null dépend du client utilisé. 
Requête SOAPJava
1<wsiv:stationArea> 
  <stations xsi:nil="1"/> 
</wsiv:stationArea>
stationArea.stations.size = 1 
stationArea.stations[0] = null
2<wsiv:stationArea> 
 
</wsiv:stationArea>
stationArea.stations = null
3<wsiv:stationArea> 
  <stations/> 
</wsiv:stationArea>
stationArea.stations.size = 1 
stationArea.stations[0].* = null
Le cas no 3 est donné à titre d'information. 
 
Java1. Réponse SOAP2. Réponse SOAP (surprenante)
1stationArea.stations = null<wsiv:stationArea> 
   
</wsiv:stationArea>
<wsiv:stationArea> 
  <stations xsi:nil="1"/> 
</wsiv:stationArea>
2stationArea.stations.size = 0<wsiv:stationArea> 
   
</wsiv:stationArea>
 
 @web   Web Services Interoperability between J2EE and .NET 
 
Retourne la version de Open data api : logicielle / données IV (eg. "1.0.0 / 20000101"). 
  • Version logicielle [1..1, N.N.N]
    Les deux 1ers chiffres correspondent à une même version de WSDL
  • Version données IV [1..1, yyyyMMdd ou Unknown]
    Date des données des serveurs IV 
    Si les serveurs IV sont indisponibles, cette valeur vaut "Unknown"
Disponibilité et validité du web service Open data api 
 
Cette méthode permet d'obtenir des informations sur la disponibilité du web service Open data api. 
Elle renseigne également sur la disponibilité de la connexion avec le système interne RATP IV (Version données IV ne termine pas par "Unknown"). 
Elle ne renseigne pas sur la disponibilité de la connexion avec les autres systèmes internes. 
 
Version logicielle 
 
Un changement sur les deux 1ers chiffres de la version sous-entend une incompatibilité avec la précédente version. 
Le dernier chiffre concerne les patchs ou les changements "backwards-compatible". 
 @web   WSDL : Understanding change types 
 
Cette incompatibilité peut se traduire soit par :
  • une modification du WSDL "non-backwards-compatible",
  • une évolution fonctionnelle sur une des méthodes nécessitant une intervention sur le code du client de Open data api.
Les méthodes suivantes permettent de récupérer les informations de structure du réseau RATP (cf. Glossaire) : 
Cette méthode permet de récupérer des lignes du réseau RATP.
L'information "Prochains Passages" (getMissionsNext) peut être soit Théorique (realm: t) soit temps Réel (realm: r) grâce au système SIEL. 
Le système SIEL s'appuyant sur un référentiel de ligne qui lui est propre, une même ligne commerciale peut être référencée 2 fois dans Open data api :
  • sa version Domaine Théorique
  • sa version Domaine temps Réel
 docs   [lineRealmCrit] : Domaines des lignes 
 docs   getMissionsNext : Prochains passages 
Si une ligne temps Réel est reliée sans ambiguïté à UNE ligne Théorique alors son code STIF est renseigné. 
Le code STIF utilisé comme critère permet de passer facilement d'un domaine à l'autre. 
 docs   Line : Propriété codeStif 
 
line1LineCritères de recherche par id
id1codeIdentifiant (unique quelque soit le domaine). 
Domaine Théorique: numérique (si l'id est numérique alors le domaine de la ligne est théorique - cf. UtilLine.isRealmTheoric
Domaine tps. Réel : 1ère lettre du réseau (M:Métro, R:RER, B:Bus et Noctilien) + code commercial de ligne
line0..1LineCritères de recherche Ligne
id0..1expLineExpression Line sous forme de chaine de caractères (Contient [*s*], Commence par [s*], ...).
code0..1expLineExpression Line sous forme de chaine de caractères (Contient [*s*], Commence par [s*], ...).
codeStif0..1expLineExpression Line sous forme de chaine de caractères (Contient [*s*], Commence par [s*], ...).
realm0..1[lineRealmCrit]Critère Domaine de ligne : Domaine (t/r) ou Critère étendu (rANDt/rTHENt).
(t par défaut)
reseau0..1Reseau
code0..1[reseauOrGroup]Groupement de lignes : Réseau (réseau primaire) ou Groupes (Groupement de réseaux pour critères de recherche seulement)).
Tableau de lignes. 
 
lines*LineLignes
id1codeIdentifiant (unique quelque soit le domaine). 
Domaine Théorique: numérique (si l'id est numérique alors le domaine de la ligne est théorique - cf. UtilLine.isRealmTheoric
Domaine tps. Réel : 1ère lettre du réseau (M:Métro, R:RER, B:Bus et Noctilien) + code commercial de ligne
code1codeCode (eg. "9" pour la ligne 9 du métro).
codeStif0..1codeCode STIF. 
Domaine Théorique: Toujours Renseigné 
Domaine tps. Réel : Non renseigné si pas d'équivalent "Théorique"
name1texteNom commercial de la ligne. 
(eg. "Mairie de Montreuil / Pont de Sèvres" pour la ligne 9 du métro).
image0..1codeImage correspondant à la ligne. 
(eg. "m9.gif" pour la ligne 9 du métro) 
Url racine des images lignes et réseaux : static/line.
realm1[lineRealm]Domaine.
reseau1ReseauRéseau. 
Descriptif maximum.
Cette méthode permet de récupérer les directions d' UNE ligne. 
  • 2 directions pour les lignes classiques
  • 1 direction pour les lignes circulaires
Le seul argument est le critère ligne utilisé par la méthode getLines
Ce critère doit représenter UNE ligne. 
Si ce n'est pas le cas, la réponse contiendra le message d'ambiguïté Ambiguous Line
 
 
line1LineCritère Ligne (cf. getLines - Arguments)
 docs  WrDirections : Web Service Response : Réponse à la méthode Wsiv.getDirections.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousLines*LineListe des Lignes correspondant au critère Ligne ambigu 
Taille > 1 si critère Ligne ambigu 
Non renseigné si critère Ligne renseigné et correct 
ou si critère Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
argumentLine0..1LineLigne correspondant au critère Ligne 
Renseigné si critère Ligne renseigné et si pas d'ambiguïté 
Descriptif complété.
directions0..2DirectionDirections (une si ligne circulaire).
sens1[dir.Sens]Sens.
name1texteNom (en général composé avec le nom de toutes les stations de fin de ligne).
line1LineLigne. 
Descriptif maximum.
stationsEndLine1..*StationStations de fin de ligne. 
Descriptif maximum.
Cette méthode permet de récupérer des stations du réseau RATP. 
 
Les axes de recherches proposés sont les suivants : Ces types de recherche peuvent être combinés. 
 
TODO:
-Recherche OTR fonctionne uniquement avec un critère ligne définissant UNE ligne.
-nameAlt UtilStation.getGeoPointName
-forme *aaaa* permet de faire un mix lexico+contient
 
station1StationCritères de recherche par id
id1codeIdentifiant 
Domaine Théorique: Identifiant unique = {idArret sens A}-{idArret sens R} (Une station est le regroupement de 1 ou 2 arrêts). 
Domaine tps. Réel : Identifiant unique au sein d'une même ligne.
Note Domaine théorique : L'identifiant d'arrêt peut également être utilisé.
line1LineCritère Ligne
id0..1codeIdentifiant de ligne.
A renseigner si Domaine tps. Réel pour récupérer UNE Station
realm1[lineRealm]Domaine.
Dans ce cas, le critère Ligne doit représenter UNE ligne. 
Si ce n'est pas le cas, la réponse contiendra le message d'ambiguïté Ambiguous Line
 
station1StationCritères de recherche par Ligne / Direction
line1LineCritère Ligne (cf. getLines - Arguments)
direction0..1DirectionFiltre Direction
sens0..1[dir.Sens]Si le sens de la direction est spécifiée, les stations jamais desservies dans le sens demandé (stations à sens unique) sont rejetées. 
Ce filtre permet par exemple d'éviter de proposer des stations alors qu'aucune information horaire (getMissions*) ne sera disponible pour la direction demandée.
station1StationCritères de recherche par nom
name1expression expStation : La recherche sur le nom peut être une expression. 
expGp.Station : Ce nom peut aussi prendre la forme optionnelle utilisée pour les GeoPoints de type station 
Phonétique : Cette recherche peut également être lexicale (en termes techniques, obtenu via IV-Lexico.Recherche) 
 
Attention : Pour des raisons d'optimisation, en fonction des critères, tous les types de recherche ne sont pas forcément disponibles : 
  • Si le critère Ligne correspond à une ligne du domaine temps Réel, la recherche lexicale n'est pas disponible.
  • Si le critère Ligne correspond à plusieurs lignes, la recherche par expression n'est pas disponible.
Cette recherche permet de récupérer les stations situées sur une surface géographique (cercle ou rectangle cf. distances
centrée sur un point (Coordonnées X,Y Lambert2 explicitement définies ou coordonnées d'UN point géographique).
Dans ce cas, le critère GeoPoint doit représenter UN point géographique. 
Si ce n'est pas le cas, la réponse contiendra le message d'ambiguïté Ambiguous GeoPoint
 
gp1GeoPointCritères Point Géographique (cf. getGeoPoints - Arguments)
gp1GeoPointCritères Coordonnées X,Y Lambert2
x1decimalCoordonnée X. 
Unité = mètre 
Systeme de coordonnées = Lambert2
y1decimalCoordonnée Y. 
Unité = mètre 
Systeme de coordonnées = Lambert2
distances1..2entier Distance de recherche en mètre ({rayon} ou {deltaX,deltaY}) 
Si la surface de recherche est un cercle (distances={rayon}), parmi les N stations retournées, il n'y aura pas 2 fois la même ligne : 
Pour une même ligne, seule la station la plus proche est renvoyée. 
Si la surface de recherche est un rectangle (distances={deltaX,deltatY}), toutes les stations de la surface sont retournées. 
Cette recherche est adaptée pour une dalle cartographique. 
Dans tous les cas, si un des 2 arrêts d'une station n'est pas dans la surface de recherche, la station n'est pas retournée. 
station1StationCritères de recherche par id StationArea
stationArea1StationArea
id1codeIdentifiant.
limit0..1entierNombre maximum de stations retournées (>0, 500 par défaut)
sortAlpha0..1boolIndique si les stations retournées sont classées par ordre alphabétique (false par défaut).
 docs  WrStations : Web Service Response : Réponse à la méthode Wsiv.getStations.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousGeoPoints*GeoPointListe des Point Géographiques correspondant au critère Point Géographique ambigu 
Taille > 1 si critère Point Géographique ambigu 
Non renseigné si critère Point Géographique renseigné et correct 
ou si critère Point Géographique incorrect sans proposition de choix pour lever l'ambiguïté.
ambiguousLines*LineListe des Lignes correspondant au critère Ligne ambigu 
Taille > 1 si critère Ligne ambigu 
Non renseigné si critère Ligne renseigné et correct 
ou si critère Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
argumentDirection0..1DirectionDirection correspondant au critère Direction 
Renseigné si critère Direction renseigné et si pas d'ambiguïté 
Descriptif complété.
argumentGeoPoint0..1GeoPointPoint Géographique correspondant au critère Point Géographique 
Renseigné si critère Point Géographique renseigné et si pas d'ambiguïté 
Descriptif complété.
argumentLine0..1LineLigne correspondant au critère Ligne 
Renseigné si critère Ligne renseigné et si pas d'ambiguïté 
Descriptif complété.
distances*entierDistances en mètres pour chaque stations. 
Les distances retournées correspondent à la distance à vol d'oiseau entre le centre de la surface de recherche (argument gp) et le milieu du segment des arrêts Aller-Retour (GeoPoint A et R). 
Cette distance ne prend pas en compte le chemin piéton (dans le cas d'une station de l'autre coté du fleuve, cette distance ne prend pas en compte la position du pont).
stations*StationStations.
id1codeIdentifiant 
Domaine Théorique: Identifiant unique = {idArret sens A}-{idArret sens R} (Une station est le regroupement de 1 ou 2 arrêts). 
Domaine tps. Réel : Identifiant unique au sein d'une même ligne.
name1texteNom.
line1LineLigne. 
Descriptif maximum.
direction0..1DirectionDirection 
Renseignée uniquement si la station est mono-directionnelle 
Description limitée à Direction.sens
geoPointA0..1GeoPointPosition de l'arrêt dans le sens aller 
Renseigné si recherche géographique. 
Note : La position d'un arrêt correspond au barycentre des points d'accès (en termes techniques, obtenu via IV-Rayonnement.Position)
Pour un arrêt de bus, cette position correspond à la position de l'arrêt. 
Pour un arrêt "ferré", il s'agit du centre de la station area : tous les arrêts "ferrés" d'une même station area sont positionnés au même endroit.
geoPointR0..1GeoPointPosition de l'arrêt dans le sens retour 
Renseigné si recherche géographique. 
cf. Note GeoPointA
stationArea0..1StationAreaAire de stations. 
Renseigné si domaine théorique 
Description limitée à StationArea.id
idsNextA*codeIdentifiants des stations suivantes dans le sens aller. 
Renseignés si Domaine tps. Réel
idsNextR*codeIdentifiants des stations suivantes dans le sens retour. 
Renseignés si Domaine tps. Réel
Cette méthode permet de rechercher les stations areas. 
 
Les axes de recherches proposés sont les suivants :
 
area1StationAreaCritères de recherche par id de StationArea
id1codeIdentifiant.
area1StationAreaCritères de recherche par id de StationArea
name1texteNom.
area1StationAreaCritères de recherche par id de StationAcces
access*StationAcces
id1codeCode/Id alphanumérique (pas d'accent, peut contenir les caractères -._)
area1StationAreaCritères de recherche par id de Station
stations*Station
id1codeCode/Id alphanumérique (pas d'accent, peut contenir les caractères -._)
Cette recherche permet de récupérer les stations areas situées sur une surface géographique (cercle ou rectangle cf. distance
centrée sur un point (Coordonnées X,Y Lambert2 explicitement définies ou coordonnées d'UN point géographique).
Dans ce cas, le critère GeoPoint doit représenter UN point géographique. 
Si ce n'est pas le cas, la réponse contiendra le message d'ambiguïté Ambiguous GeoPoint
 
gp1GeoPointCritères Point Géographique (cf. getGeoPoints - Arguments)
gp1GeoPointCritères Coordonnées X,Y Lambert2
x1decimalCoordonnée X. 
Unité = mètre 
Systeme de coordonnées = Lambert2
y1decimalCoordonnée Y. 
Unité = mètre 
Systeme de coordonnées = Lambert2
distance1entier Distance de recherche en mètre (rayon) 
 docs  WrStationAreas : Web Service Response : Réponse à la méthode Wsiv.getStationAreas.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousGeoPoints*GeoPointListe des Point Géographiques correspondant au critère Point Géographique ambigu 
Taille > 1 si critère Point Géographique ambigu 
Non renseigné si critère Point Géographique renseigné et correct 
ou si critère Point Géographique incorrect sans proposition de choix pour lever l'ambiguïté.
argumentGeoPoint0..1GeoPointPoint Géographique correspondant au critère Point Géographique 
Renseigné si critère Point Géographique renseigné et si pas d'ambiguïté 
Descriptif complété.
distances*entierDistances en mètres pour chaque stations. 
Les distances retournées correspondent à la distance à vol d'oiseau entre le centre de la surface de recherche (argument gp) et le milieu du segment des arrêts Aller-Retour (GeoPoint A et R). 
Cette distance ne prend pas en compte le chemin piéton (dans le cas d'une station de l'autre coté du fleuve, cette distance ne prend pas en compte la position du pont).
stationAreas*StationAreaAires de stations.
id1codeIdentifiant.
name1texteNom.
zoneCarteOrange0..1codeZone(s) CarteOrange. Concaténation pour toutes les stations liées des zones CarteOrange Montée/Descente distincts triées par ordre croissant et séparées par -.
access*StationAccesIndex de l'accès (Signalétique RATP).
stations*StationStations ferrées (Métro, RER, Tram) associées.
tarifsToParis*TarifTarifs vers Paris.
Les méthodes suivantes permettent de récupérer les informations horaires du réseau RATP :
Cette méthode permet de récupérer les horaires des prochains passages des missions à UNE station. 
 
Extrait limité de Mission 
Dans un souci d'optimisation de la taille de la réponse, les informations relatives aux stations traversées par la mission sont limitées à la station demandée et éventuellement à la station terminus. 
Pour avoir plus d'informations sur la desserte, un appel à getMission est nécessaire. 
 
Tri des missions 
Les missions sont triées par ordre chronologique de passage. 
Si l'information est demandée pour les 2 directions, les missions concernant la direction A (sens Aller) sont classées en 1er. Les missions sont alors réparties de manière homogène sur les 2 directions. 
 
Domaine temps Réel et perturbations 
Si la ligne demandée est équipée du système SIEL (isRealmRealTime), les horaires retournés seront "temps Réel". 
A noter que dans ce cas, des messages de perturbations peuvent être également retournés. 

Le critère Station doit représenter UNE station. 
Si ce n'est pas le cas, la réponse contiendra le message d'ambiguité Ambiguous Station
 
Le critère Direction doit représenter UNE direction ou explicitement indiquer que l'information est demandée dans les 2 sens ("*"). 
Si ce n'est pas le cas (la station est bi-directionnelle), la réponse contiendra le message d'ambiguité Ambiguous Direction
 
station1StationCritères de recherche Station (cf. getStations - Arguments)
direction1DirectionCritères de recherche Direction
sens1[dir.SensCrit]Critère Direction-Sens : Sens (A/R) ou Critère étendu (*).
dateStart0..1dateDate à partir de laquelle l'on souhaite les horaires (Maintenant par défaut) 
Domaine Théorique: Obligatoire (exception si cette date ne respecte pas le format yyyyMMddHHmm) 
Domaine tps. Réel : Non renseigné (MAINTENANT Seule date supportée)
limit0..1entierNombre maximum de missions (horaires) retournées (>0, 500 par défaut)
 docs  WrMissions : Web Service Response : Réponse à la méthode Wsiv.getMissions.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousDirections0..2DirectionListe des Directions 
Non renseignée si la station est mono-directionnelle 
ou si le critère Direction est non renseigné
ambiguousLines*LineListe des Station-Lignes correspondant au critère Station-Ligne ambigu 
Taille > 1 si critère Station-Ligne ambigu 
Non renseigné si critère Station-Ligne renseigné et correct 
ou si critère Station-Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
ambiguousStations*StationListe des Stations correspondant au critère Station ambigu 
Taille > 1 si critère Station ambigu 
Non renseigné si critère Station renseigné et correct 
ou si critère Station incorrect sans proposition de choix pour lever l'ambiguïté.
argumentDate1dateDate demandée.
argumentDirection0..1DirectionDirection 
Renseignée si la station est mono-directionnelle 
ou si le critère Direction spécifie UNE direction 
Descriptif complété.
argumentStation0..1StationStation correspondant au critère Station 
Renseigné si critère Station renseigné et si pas d'ambiguïté 
Descriptif complété.
missions*MissionMissions.
id0..1codeIdentifiant. 
Domaine Théorique: Toujours Renseigné 
Domaine tps. Réel : Jamais renseigné si reseau != RER
code0..1codeCode. 
Domaine Théorique: Jamais Renseigné 
Domaine tps. Réel : Jamais renseigné si reseau != RER
direction1DirectionDirection. 
Descriptif maximum.
stationEndLine0..1StationStation de fin de ligne (à ne pas confondre avec la destination de la mission: stations[LAST]). 
Descriptif maximum. 
Domaine Théorique: Toujours Renseigné 
Domaine tps. Réel : Jamais renseigné
stations[0]1StationStation demandée 
Descriptif maximum.
stations[1]0..1Station Station de fin (destination de la mission) 
ou Texte descriptif en général associé à une information de type date portée par stationsMessages[0] (eg.15 mn) et stationsDates[0] 
Station : Descriptif maximum. 
Texte : Descriptif limité au nom (station.name, station.id=null).
stationsMessages0..1texteMessages associés aux stations (même indexation que le tableau des stations traversées). 
Domaine Théorique: Jamais renseigné 
Domaine tps. Réel : Toujours renseigné

Extrait limité à la station demandée (index:0)
stationsDates0..1dateHeures de passage aux stations (même indexation que le tableau des stations traversées). 
Domaine Théorique: Toujours renseigné 
Domaine tps. Réel : Pas forcément renseigné

Extrait limité à la station demandée (index:0)
stationsStops0..1boolIndique si la station est desservie (même indexation que le tableau des stations traversées).
Extrait limité à la station demandée (index:0)
stationsPlatforms0..1codeNuméro de quai lors de l'arrêt aux stations (même indexation que le tableau des stations traversées). 
Domaine Théorique: Jamais Renseigné 
Domaine tps. Réel : Jamais renseigné si reseau != RER

Extrait limité à la station demandée (index:0)
perturbations*PerturbationPerturbations éventuelles. 
Domaine Théorique: Jamais Renseigné 
Domaine tps. Réel : Renseigné si besoin
source1[p.Source]=otr
level1[p.Level]Niveau de la perturbation.
message1P.MessageMessage.
text1texteTexte.
Certaines propriétés SIRI ne sont pas directement remontées par Open data api mais peuvent être déduites des messages remontés par Open data api. 
Par exemple, la propriété SIRI « SignalStatus » peut être prendre la valeur « APPROACHING » si le message remonté par Open data api est « A l'approche ». 
 
Les messages Open data api en question correspondent aux propriétés Open data api suivantes : 
- [Sn] Texte descriptif de la destination (Open data api stations[1].name), 
- [Mg] Message (Open data api stationsMessages[0]) 
 
L'étape 1 exposée ci-après nous permettra de déterminer la propriété CallNote [Cn] 
correspondant au message Open data api [Mg] complété éventuellement en fonction du contexte avec l'information destination [Sn]
L'étape 2 se basera ensuite sur cette CallNote [Cn] pour calculer d'autres propriétés SIRI. 
 
Expressions régulières 
Chaque type de message exprimé sous la forme d'une expression régulière identifie un cas d'usage permettant de valuer ou non ces nouvelles propriétés. 
 
 @web   Summary of regular-expression constructs 
 @web   Regular Expression Test Page 
 
Dans un souci de simplification, les expressions régulières utilisées ne tiennent compte :
  • ni de la casse
  • ni des caractères accentués.
Les expressions régulières utilisées dépendent du réseau de la station en cours d'analyse. 
Avant d'utiliser ces expressions, les mots clé [_r_] et [_rsl_] sont à remplacer en fonction du réseau.
  • [_rsl_] - reseau, service, ligne : 
    si Metro: (|metro |train |service |ligne ) 
    si RER : (|rer |train |service |ligne ) 
    si Tram: (|tram |tramway |service |ligne ) 
    si Bus  : (|bus |service |ligne )
  • [_r_] - reseau : 
    si Metro: (metro|train) 
    si RER : (rer|train) 
    si Tram: (tram |tramway) 
    si Bus  : bus
Traitement du message à comparer 
Le message à comparer devra faire l'objet au préalable :
  • d'une copie dans une variable locale ([cn] ou [sn])
  • d'un passage en minuscule
  • avec remplacement de tous les caractères accentués par leur équivalent non accentué (cad. é devient e).
 
Avec les propriétés Open data api suivantes ... 
 
- [Sn] Texte descriptif de la destination : éventuellement renseigné, stations[1].name, 
La propriété stations[1].name décrit sans ambiguïté une station destination si son id est différent de null. 
Par contre, si son id est null cette propriété correspond à un texte descriptif représentant plusieurs notions (cf. 2ème tableau ci dessous).
 
- [sn] [Sn] en minuscule sans accent 
 
- [Mg] Message : toujours renseigné, stationsMessages[0], 
- [Dt] Date de passage : éventuellement renseigné, stationsDates[0], 
- [Mc] Code Mission : éventuellement renseigné si RER, mission.code, 
 
... les propriétés SIRI suivantes peuvent être déduites. 
 
Propriété 
SIRI
Abrév.Description
CallNoteMessage associé au passage du véhicule contenant 
soit une heure de passage prête à être affichée, 
soit une information générale.
Journey 
Note
jnLibellé de la course, 
en priorité le code mission [Mc] si il est renseigné, 
sinon le texte descriptif [Sn] s'il représente un libellé de course
Expected 
Departure 
Time
dateHeure de départ estimée 
renseignée avec stationsDates [Dt] 
Heure forcément non renseignée si le texte [Sn] est un message qui ne peut être associé à une date de passage
IdCode[sn] stations[1].nameCallNote
n
da 
te
Remarque
Cas
sn0Renseigné avec id!=null 
(stations.size=2)
[Mg][Mc] 
ou 
[Sn]
[Dt]Fonctionnement normal 
stations[1].name correspond ici à une vraie station de destination 
(eg. Gare de Lyon, Poissy)
sn1Non renseigné 
(stations.size=1)
[Mg][Mc][Dt]Ce cas correspond en général à un message [Mg] d'information générale 
(Service Terminé, Indisponibilité,...)
Renseigné avec id=null 
(stations.size=2)
sn2*info 
Course
sans voyageurs 
sans arret 
service special
[Sn] [Mg][Mc][Dt]Le choix est fait ici de considérer que 
[Sn] n'est pas un libellé de course 
mais un message caractérisant la course
sn3*message 
Date
[_r_] (estime|prevu) dans 
suivant a \+ de
[Sn] [Mg][Mc][Dt][Sn] est un message 
associé à une date de passage
sn4*message 
NoDate
moyen[Sn] [Mg][Mc]0[Sn] est un message 
qui ne peut être associé à une date de passage 
L'information date de passage fournie par Open data api n'a pas de sens
sn5Autre[Mg][Mc] 
ou 
[Sn]
[Dt][Sn] est un libellé de course 
Il ne correspond pas à une station de destination 
mais il s'agit d'un nom de mission (eg. Boucle Nord) 
ou de direction (eg. Vers Pte St Ouen)
En vert : Forcément renseigné 
En rouge : Forcément non renseignée 
* : Cas défini par configuration
 
Avec la propriété Open data api ... 
- [sd] Station desservie ou non : éventuellement renseigné si RER, stationsStops[0], 
 
... et la propriété SIRI ... 
- [cn] CallNote calculée précédement en minuscule sans accent, 
 
... les propriétés SIRI suivantes peuvent être déduites. 
 
Propriété 
SIRI
Abrév.Valeur Description
Vehicle 
AtStop
intrue1Le véhicule est en station (avec ou sans voyageurs)
false0Le véhicule N'est PAS en station
Signal 
Status
soonAPPROACHING1Le véhicule est à l'approche (avec ou sans voyageurs, avec ou sans arrêt)
0Le véhicule N'est PAS à l'approche
Platform 
Traversal
st 
op
false1Le véhicule marque ou marquera l'arrêt (avec ou sans voyageurs)
true0Le véhicule NE marquera PAS l'arrêt
Arrival 
Boarding 
Activity
ar 
act
alightingAA l'arrivée, la descente sera autorisée
noAlightingnoAA l'arrivée, la descente ne sera pas autorisée
passthruPLe véhicule ne marquera pas l'arrêt
Departure 
Boarding 
Activity
dp 
act
boardingBAu départ, l'embarquement sera autorisé
noBoardingnoBAu départ, l'embarquement ne sera pas autorisé
passthruPLe véhicule ne marquera pas l'arrêt
Departure 
Status
dp 
sta
onTimeLe véhicule est ou sera à l'heure (avec ou sans voyageurs, avec ou sans arrêt) 
Open data api ne permet pas d'obtenir cette information
earlyLe véhicule est ou sera en avance (avec ou sans voyageurs, avec ou sans arrêt) 
Open data api ne permet pas d'obtenir cette information
delayedDeLe véhicule est retardé (avec ou sans voyageurs, avec ou sans arrêt)
cancelledCaLe véhicule est annulé
arrivedArLe véhicule est en station (avec ou sans voyageurs, avec ou sans arrêt)
noReportValeur par défaut
 
Note : Passage sans arrêt [PSA] / Station non desservie [SND] 
Open data api nous donne des informations sur le fait qu'une station n'est pas desservie via la propriété stationsStops[0] = false [SND]. 
Dans ce cas, soit le véhicule ne s'arrête pas en station [PSA] (cas le plus fréquent), soit le véhicule s'arrête en station sans prendre de voyageurs. 
Les notions SIRI passthru et PlatformTraversal=true expriment un "passage sans arrêt" [PSA] et non une "station non desservie" [SND] (en d'autres termes un passage sans arrêt voyageur). 
Les informations [SND] et [PSA] traduisent 2 notions différentes même si elles sont la plupart du temps équivalentes (en général un véhicule ne desservant pas une station ne marque pas l'arrêt à cette station). 
Dans les tableaux ci dessous, l'approximation "[PSA] équivalent [SND]" est parfois utilisée et est signalée par la notation "(a)" accompagnée d'une remarque.
 
Cette propriété (indiquant que la station est desservie ou non) peut prendre les valeurs suivantes : 
 
Cas[sd] Station desservieinso 
on
st 
op
ar 
act
dp 
act
dp 
sta
Remarque
sd0Non renseigné
sd1true1
(a)

(a)
(a) Approximation au limites. En toute rigueur, si la station est le départ (resp. terminus) de la mission, le Departure (resp. Arrival) BoardingActivity devrait être noBoarding (resp. noAlighting). Malheureusement l'information Départ/Terminus n'est pas ici directement accessible.
sd2false
(a)

(a)

(a)
(a) On suppose que comme la station n'est pas desservie, l'arrêt ne sera pas marqué.
Cette propriété calculée à l'étape 1 passée en minuscule sans accent est susceptible de remonter les messages suivants. 
 
Cas[cn] CallNoteinso 
on
st 
op
ar 
act
dp 
act
dp 
sta
Remarque
cn0extinctionCas où la borne est en panne 
Le message existe dans le système temps Réel mais n'est jamais remonté par Open data api 
cn1.*a quai(| v.*) 
.*a l'arret 
depart imminent 
[_r_] arrete 
stationne(| v.*)
101
(a)

(a)
ArMessage correspondant à un fonctionnement normal 
(a) On suppose que le véhicule prend des voyageurs (sinon on aurait un message explicite)
cn2.*a l'approche.*01
(a)

(a)

(a)
Message correspondant à un fonctionnement normal 
(a) On suppose que le véhicule prendra des voyageurs (sinon on aurait un message explicite)
cn3(\d\d\:\d\d |)depart(| v.*)1noABMessage correspondant à un fonctionnement normal 
La station demandée correspond au départ (resp. terminus) de la mission
cn4(\d\d\:\d\d |)terminus(| v.*) 
[_r_] terminus(| v.*)
AnoB
cn5\d\d\:\d\d.* 
\d* mn

(a)

(a)

(a)
Message correspondant à un fonctionnement normal 
Soit une heure de passage (eg.12:00 cas constaté avec RER) 
Soit un temps de passage (eg. 5mn cas constaté pour les autres réseaux) 
(a) On suppose que le véhicule prendra des voyageurs (sinon on aurait un message explicite)
cn6(premier|dernier) passage 
(premier|dernier) tramway 
(premier|deuxieme) depart.* 
service normal

(a)

(a)

(a)
Message correspondant à un fonctionnement normal 
sans informations horaire 
(a) On suppose que le véhicule prendra des voyageurs (sinon on aurait un message explicite)
cn7.*sans arret.*00PPLe véhicule véhicule ne s'arrêtera pas
cn8.*non des(|s)ervi(|e) 
sans voyageur.* 
service special.*

(a)

(a)

(a)

(a)
(a) On suppose que le véhicule ne s'arrêtera pas 
puisqu'il ne prendra pas de voyageur
cn9[_r_] retard.* 
depart retard.*
0DeLe véhicule est explicitement en retard.
cn10(a |au |entre ).*0DeVéhicule en mode position (sous entend un retard)
cn11[_rsl_](|peu |tres )perturbe(|e) 
perturbations 
manifesta(|t)ion 
verglas 
arret reporte 
(1|2|3) [_r_] sur .* 
(|service |trafic )red(|d)uit 
ligne limite(|e)
0DePerturbations donc retard.
cn12supprime 
interruption 
[_rsl_]interrompu(|e) 
[_rsl_]indi(|s)po(|nible|nibilite) 
[_rsl_]non assure(|e)
000noAnoBCaUne interruption de service sous-entend que 
le service existait et qu'il a été annulé
cn13pas de service 
(|service )termine 
(|service )non commence 
\.*
000noAnoB
cn14info indispo.*L'information n'est pas disponible mais peut être pas le service
cn15intervalle.*
cn16moyen.* 
[_r_] (estime|prevu) dans.* 
suivant a \+ de.*
Information provenant exclusivement de [sn] stations[1].name
cn17[_rsl_]devie(|e) 
[_r_] suivant devie(|e) 
deviation 
centre bus 
information 
service 
voie .*
cn18-\d* mnCas inexpliqué où l'heure de passage prévue est dans le passé (par rapport à la date de la requête exprimée dans la réponse) 
cf. équipe système temps réel
Cette méthode permet de récupérer les horaires des 1er/dernier passages depuis une station (domaine théorique uniquement). 
 
Cette méthode renvoie uniquement les missions suivantes : 
Pour chaque station de fin de ligne : 
- 1ère et dernière mission déservant la station de départ demandée à destination de la fin de ligne. 
- Si une mission s'arrêtant avant la fin de ligne(*) démarre avant la 1ère mission ci-avant ou après la dernière mission ci-avant, cette mission est également retournée. 
(*) Station de fin de mission != station de fin de ligne. 
Cette méthode permet de récupérer les fréquences de passage des missions à une station pour une direction donnée (domaine théorique uniquement). 
 
La fréquence de passage est estimée à partir des horaires de passages prévus dans la tranche horaire [datesStart,datesEnd] : 
Moyenne des écarts de passages entre toutes les missions desservant la station pendant cette période (bornes start-end incluses). 
station1StationCritères de recherche Station (cf. getStations - Arguments)
direction1DirectionCritères de recherche Direction
sens1[dir.SensCrit]Critère Direction-Sens : Sens (A/R) ou Critère étendu (*).
stationEndLine0..1Station Dans le cas des lignes linéaires, cette information est équivalente à la direction. 
Concernant les lignes à N fourches, pour une direction fourchue donnée et pour une tranche horaire, le nombre total de fréquences est potentiellement de N+1 : N fréquences vers les N fourches + 1 fréquence vers la 1ère division ("fréquence intra-muros"). 
 
Cette méthode ne remonte que les informations pertinentes pour la station demandée. 
Ainsi le nombre N+1 fréquences est un maximum. 
En effet, si une station se situe après la 1ère division (eg. RER A - Sartrouville), pour une direction donnée, elle ne "voit" plus que n fourches (n < N), n diminuant plus on s'avance vers un fin de fourche. 
Si n=1 (eg. RER A - Achères Grand Cormier), alors le nombre de fréquence n'est plus n+1 mais 1 car dans ce cas comme pour une ligne linéaire, les informations direction et fin de ligne sont équivalentes.
stationEnd0..1Station Dans le cas d'une ligne linéaire avec toutes les missions desservant toutes les stations, cette information est équivalente à la direction ainsi qu'à la station de fin de ligne. 
Certaines lignes ont des terminus ne correspondant pas à une fin de ligne (eg. RER A - Torcy). 
Pour avoir une vue présentant tous les terminus possibles, utiliser le critère stationEnd.id=*. 
 
Le paramètre station de fin peut également être utilisé pour calculer les fréquences de passage des missions traversant station vers stationEnd.
datesStart0..* Tableau des dates de début de chaque tranche horaire (doit être de la même taille que datesEnd). 
Si ce champ n'est pas renseigné ou s'il vaut "start" alors la valeur utilisée sera l'heure du 1er départ. 
Cette fonction permet donc aussi de calculer le permier passage. 
Remarques : 
Si les tableaux datesStart et datesEnd ne sont pas renseignés, alors LA tranche horaire utilisée par défaut est d'une heure (30mn avant et après la date courante). 
Les 2 tableaux doivent être de même taille. 
datesEnd0..* Tableau des dates de fin de chaque tranche horaire (doit être de la même taille que datesStart). 
Si ce champ n'est pas renseigné ou s'il vaut "end" alors la valeur utilisée sera l'heure du dernier départ. 
Cette fonction permet donc aussi de calculer le dernier passage. 
Si aucun des champs datesStart et datesEnd n'est renseigné, alors LA tranche horaire utilisée par défaut est d'une heure (30mn avant et après la date courante). 
Remarques : 
cf. datesStart.
 docs  WrMissions : Web Service Response : Réponse à la méthode Wsiv.getMissions.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousDirections0..2DirectionListe des Directions 
Non renseignée si la station est mono-directionnelle 
ou si le critère Direction est non renseigné
ambiguousLines*LineListe des Station-Lignes correspondant au critère Station-Ligne ambigu 
Taille > 1 si critère Station-Ligne ambigu 
Non renseigné si critère Station-Ligne renseigné et correct 
ou si critère Station-Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
ambiguousStations*StationListe des Stations correspondant au critère Station ambigu 
Taille > 1 si critère Station ambigu 
Non renseigné si critère Station renseigné et correct 
ou si critère Station incorrect sans proposition de choix pour lever l'ambiguïté.
argumentDate1dateDate demandée.
argumentDirection0..1DirectionDirection 
Renseignée si la station est mono-directionnelle 
ou si le critère Direction spécifie UNE direction 
Descriptif complété.
argumentStation0..1StationStation correspondant au critère Station 
Renseigné si critère Station renseigné et si pas d'ambiguïté 
Descriptif complété.
missions*MissionMissions.
direction1DirectionDirection. 
Descriptif maximum.
stationEndLine0..1Station Renseignée si le calcul porte sur une station de fin de ligne. 
Si le calcul porte uniquement sur une station de fin, renseignée s'il n'y a pas d'ambiguïté.
stationEnd TODO : Renseignée si le calcul porte sur une station de fin.
stationsDates0..*dateHeures de passage aux stations (même indexation que le tableau des stations traversées). 
Domaine Théorique: Toujours renseigné 
Domaine tps. Réel : Pas forcément renseigné

Tableau de dates des fréquences de passage des m tranches horaires demandées du type : [datesStart[i],datesEnd[i]], où 0<=i<m
stationsMessages0..*texte Tableau des messages associés, du type : "[frequence] minute(s)" ou "un passage à [HH:mm]
Les messages peuvent être utilisés tels quels ou être vus comme donnée (cf. information en gras). 
Le code ci-après permet d'extraire cette donnée.
 
Code pour l'extraction de la donnée stationsMessages :
int fq = NumberUtils.toInt(StringUtils.substringBefore(msg, " "), -1);
String hourPassage = null;
if (fq != -1) {
  hourPassage = StringUtils.substringAfterLast(msg, " ");
}
Cette méthode permet de récupérer le détail complet d'une mission (stations traversées). 
Méthode réservée pour l'instant au Domaine temps Réel. 
Le critère Ligne doit représenter UNE ligne. 
Si ce n'est pas le cas, la réponse contiendra le message d'ambiguité Ambiguous Ligne
 
mission1MissionCritères de recherche Mission
id1codeIdentifiant. 
Domaine Théorique: Toujours Renseigné 
Domaine tps. Réel : Jamais renseigné si reseau != RER
line1LineCritère Ligne (cf. getLines - Arguments)
date0..1dateDate de la mission (Maintenant par défaut) 
Domaine tps. Réel : Non renseigné (MAINTENANT Seule date supportée)
stationAll0..1boolIndique si l'on souhaite également les stations non desservies (false par défaut).
stationSortAlpha0..1boolIndique si les stations retournées sont classées par ordre alphabétique (false par défaut).
 docs  WrMission : Web Service Response : Réponse à la méthode Wsiv.getMission.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousLines*LineListe des Lignes correspondant au critère Ligne ambigu 
Taille > 1 si critère Ligne ambigu 
Non renseigné si critère Ligne renseigné et correct 
ou si critère Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
argumentDate1dateDate demandée.
argumentLine0..1LineLigne correspondant au critère Ligne 
Renseigné si critère Ligne renseigné et si pas d'ambiguïté 
Descriptif complété.
mission0..1MissionMission.
id1codeIdentifiant
line1LineLigne. 
Descriptif maximum.
stations*StationStations traversées par la mission. 
Descriptif maximum.
stationsStops*boolIndique si la station est desservie (même indexation que le tableau des stations traversées).
2. Modèle des Classes
 
 
 
Réseau (exemple : RER, Métro, etc).

id1codeIdentifiant (identifiant d'origine IV - code reseau - marqueur réseau étendu).
code1[reseauPrimaire]Code identifiant.
name1texteNom du réseau. 
(eg. "Métro" pour le réseau métro).
image1codeImage correspondant au réseau. 
(exemple : p_met.gif pour le réseau métro) 
cf. wsiv.properties pour connaitre l'url racine des images lignes et réseaux.
Ligne (eg. 1 La Défense-Vincennes, etc).

id1codeIdentifiant (unique quelque soit le domaine). 
Domaine Théorique: numérique (si l'id est numérique alors le domaine de la ligne est théorique - cf. UtilLine.isRealmTheoric
Domaine tps. Réel : 1ère lettre du réseau (M:Métro, R:RER, B:Bus et Noctilien) + code commercial de ligne
code1codeCode (eg. "9" pour la ligne 9 du métro).
codeStif0..1codeCode STIF. 
Domaine Théorique: Toujours Renseigné 
Domaine tps. Réel : Non renseigné si pas d'équivalent "Théorique"
name1texteNom commercial de la ligne. 
(eg. "Mairie de Montreuil / Pont de Sèvres" pour la ligne 9 du métro).
image0..1codeImage correspondant à la ligne. 
(eg. "m9.gif" pour la ligne 9 du métro) 
Url racine des images lignes et réseaux : static/line.
realm1[lineRealm]Domaine.
reseau1ReseauRéseau. 
Descriptif maximum.
Direction.

sens1[dir.Sens]Sens.
name1texteNom (en général composé avec le nom de toutes les stations de fin de ligne).
line1LineLigne. 
Descriptif maximum.
stationsEndLine1..*StationStations de fin de ligne. 
Descriptif maximum.
Station.

id1codeIdentifiant 
Domaine Théorique: Identifiant unique = {idArret sens A}-{idArret sens R} (Une station est le regroupement de 1 ou 2 arrêts). 
Domaine tps. Réel : Identifiant unique au sein d'une même ligne.
name1texteNom.
line1LineLigne. 
Descriptif maximum.
direction0..1DirectionDirection 
Renseignée uniquement si la station est mono-directionnelle 
Description limitée à Direction.sens
geoPointA0..1GeoPointPosition de l'arrêt dans le sens aller 
Renseigné si recherche géographique. 
Note : La position d'un arrêt correspond au barycentre des points d'accès (en termes techniques, obtenu via IV-Rayonnement.Position)
Pour un arrêt de bus, cette position correspond à la position de l'arrêt. 
Pour un arrêt "ferré", il s'agit du centre de la station area : tous les arrêts "ferrés" d'une même station area sont positionnés au même endroit.
geoPointR0..1GeoPointPosition de l'arrêt dans le sens retour 
Renseigné si recherche géographique. 
cf. Note GeoPointA
stationArea0..1StationAreaAire de stations. 
Renseigné si domaine théorique 
Description limitée à StationArea.id
idsNextA*codeIdentifiants des stations suivantes dans le sens aller. 
Renseignés si Domaine tps. Réel
idsNextR*codeIdentifiants des stations suivantes dans le sens retour. 
Renseignés si Domaine tps. Réel
Aire de Stations. 
Regroupement de stations ferrées situées dans une même zone géographique ayant strictement le même nom.

id1codeIdentifiant.
name1texteNom.
zoneCarteOrange0..1codeZone(s) CarteOrange. Concaténation pour toutes les stations liées des zones CarteOrange Montée/Descente distincts triées par ordre croissant et séparées par -.
access*StationAccesIndex de l'accès (Signalétique RATP).
stations*StationStations ferrées (Métro, RER, Tram) associées.
tarifsToParis*TarifTarifs vers Paris.
Accès de Station.

id1codeIdentifiant.
name1texteNom.
timeStart0..1heureHeure d'ouverture.
timeEnd0..1heureHeure de fermeture.
address0..1texteAdresse.
index0..1codeIndex de l'accès (Signalétique RATP).
timeDaysLabel0..1texteStatut des jours d'ouverture (libellé).
timeDaysStatus0..1codeStatut des jours d'ouverture 
lmmjvsd : Lundi à Dimanche 
J : Jours fériés 
V : Vacances scolaires 
Chaque digit peut prendre les valeurs suivantes : 
O : Oui (Ouvert) 
N : Non (Fermé) 
I : Indéfini
x0..1decimalCoordonnée X. 
Unité = mètre 
Systeme de coordonnées = Lambert2
y0..1decimalCoordonnée Y. 
Unité = mètre 
Systeme de coordonnées = Lambert2
Mission.

id0..1codeIdentifiant. 
Domaine Théorique: Toujours Renseigné 
Domaine tps. Réel : Jamais renseigné si reseau != RER
code0..1codeCode. 
Domaine Théorique: Jamais Renseigné 
Domaine tps. Réel : Jamais renseigné si reseau != RER
line1LineLigne. 
Descriptif maximum.
direction1DirectionDirection. 
Descriptif maximum.
stationEndLine0..1StationStation de fin de ligne (à ne pas confondre avec la destination de la mission: stations[LAST]). 
Descriptif maximum. 
Domaine Théorique: Toujours Renseigné 
Domaine tps. Réel : Jamais renseigné
stationsDates*dateHeures de passage aux stations (même indexation que le tableau des stations traversées). 
Domaine Théorique: Toujours renseigné 
Domaine tps. Réel : Pas forcément renseigné
stationsMessages*texteMessages associés aux stations (même indexation que le tableau des stations traversées). 
Domaine Théorique: Jamais renseigné 
Domaine tps. Réel : Toujours renseigné
stationsPlatforms*codeNuméro de quai lors de l'arrêt aux stations (même indexation que le tableau des stations traversées). 
Domaine Théorique: Jamais Renseigné 
Domaine tps. Réel : Jamais renseigné si reseau != RER
stationsStops*boolIndique si la station est desservie (même indexation que le tableau des stations traversées).
perturbations*PerturbationPerturbations éventuelles.
stations*StationStations traversées par la mission. 
Descriptif maximum.
Tarif.

demiTarif0..1decimalDemi Tarif (Euros).
pleinTarif1decimalPlein Tarif (Euros).
viaLine0..1LineLigne via. 
Descriptif maximum.
viaReseau0..1ReseauRéseau via. 
Descriptif maximum.
 
 
Web Service Response : Réponse à la méthode Wsiv.getDirections.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousLines*LineListe des Lignes correspondant au critère Ligne ambigu 
Taille > 1 si critère Ligne ambigu 
Non renseigné si critère Ligne renseigné et correct 
ou si critère Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
argumentLine0..1LineLigne correspondant au critère Ligne 
Renseigné si critère Ligne renseigné et si pas d'ambiguïté 
Descriptif complété.
directions0..2DirectionDirections (une si ligne circulaire).
Web Service Response : Réponse à la méthode Wsiv.getStations.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousGeoPoints*GeoPointListe des Point Géographiques correspondant au critère Point Géographique ambigu 
Taille > 1 si critère Point Géographique ambigu 
Non renseigné si critère Point Géographique renseigné et correct 
ou si critère Point Géographique incorrect sans proposition de choix pour lever l'ambiguïté.
ambiguousLines*LineListe des Lignes correspondant au critère Ligne ambigu 
Taille > 1 si critère Ligne ambigu 
Non renseigné si critère Ligne renseigné et correct 
ou si critère Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
argumentDirection0..1DirectionDirection correspondant au critère Direction 
Renseigné si critère Direction renseigné et si pas d'ambiguïté 
Descriptif complété.
argumentGeoPoint0..1GeoPointPoint Géographique correspondant au critère Point Géographique 
Renseigné si critère Point Géographique renseigné et si pas d'ambiguïté 
Descriptif complété.
argumentLine0..1LineLigne correspondant au critère Ligne 
Renseigné si critère Ligne renseigné et si pas d'ambiguïté 
Descriptif complété.
distances*entierDistances en mètres pour chaque stations. 
Les distances retournées correspondent à la distance à vol d'oiseau entre le centre de la surface de recherche (argument gp) et le milieu du segment des arrêts Aller-Retour (GeoPoint A et R). 
Cette distance ne prend pas en compte le chemin piéton (dans le cas d'une station de l'autre coté du fleuve, cette distance ne prend pas en compte la position du pont).
stations*StationStations.
Web Service Response : Réponse à la méthode Wsiv.getStationAreas.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousGeoPoints*GeoPointListe des Point Géographiques correspondant au critère Point Géographique ambigu 
Taille > 1 si critère Point Géographique ambigu 
Non renseigné si critère Point Géographique renseigné et correct 
ou si critère Point Géographique incorrect sans proposition de choix pour lever l'ambiguïté.
argumentGeoPoint0..1GeoPointPoint Géographique correspondant au critère Point Géographique 
Renseigné si critère Point Géographique renseigné et si pas d'ambiguïté 
Descriptif complété.
distances*entierDistances en mètres pour chaque stations. 
Les distances retournées correspondent à la distance à vol d'oiseau entre le centre de la surface de recherche (argument gp) et le milieu du segment des arrêts Aller-Retour (GeoPoint A et R). 
Cette distance ne prend pas en compte le chemin piéton (dans le cas d'une station de l'autre coté du fleuve, cette distance ne prend pas en compte la position du pont).
stationAreas*StationAreaAires de stations.
 
Web Service Response : Réponse à la méthode Wsiv.getMissions.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousDirections0..2DirectionListe des Directions 
Non renseignée si la station est mono-directionnelle 
ou si le critère Direction est non renseigné
ambiguousLines*LineListe des Station-Lignes correspondant au critère Station-Ligne ambigu 
Taille > 1 si critère Station-Ligne ambigu 
Non renseigné si critère Station-Ligne renseigné et correct 
ou si critère Station-Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
ambiguousStations*StationListe des Stations correspondant au critère Station ambigu 
Taille > 1 si critère Station ambigu 
Non renseigné si critère Station renseigné et correct 
ou si critère Station incorrect sans proposition de choix pour lever l'ambiguïté.
argumentDate1dateDate demandée.
argumentDirection0..1DirectionDirection 
Renseignée si la station est mono-directionnelle 
ou si le critère Direction spécifie UNE direction 
Descriptif complété.
argumentLine0..1LineStation-Ligne correspondant au critère Station-Ligne 
Renseigné si critère Station-Ligne renseigné et si pas d'ambiguïté 
Descriptif complété.
argumentStation0..1StationStation correspondant au critère Station 
Renseigné si critère Station renseigné et si pas d'ambiguïté 
Descriptif complété.
missions*MissionMissions.
perturbations*PerturbationPerturbations éventuelles. 
Domaine Théorique: Jamais Renseigné 
Domaine tps. Réel : Renseigné si besoin
Web Service Response : Réponse à la méthode Wsiv.getMission.

ambiguityMessage0..1[wrAmbigMsg]Message d'ambiguïté. 
Non renseigné si tous les critères sont corrects
ambiguousLines*LineListe des Lignes correspondant au critère Ligne ambigu 
Taille > 1 si critère Ligne ambigu 
Non renseigné si critère Ligne renseigné et correct 
ou si critère Ligne incorrect sans proposition de choix pour lever l'ambiguïté.
argumentDate1dateDate demandée.
argumentLine0..1LineLigne correspondant au critère Ligne 
Renseigné si critère Ligne renseigné et si pas d'ambiguïté 
Descriptif complété.
mission0..1MissionMission.
 
Booléen.
 
Décimal.
Entier.
 
Date (format yyyyMMddHHmm, heure de Paris).
 
Période Fuseau horaire / Timezone Format ISO8601
Hiver 
[Dernier Dimanche Oct. -1h UTC 
,Dernier Dimanche Mars-1h UTC]
UTC+1CET 
Central European 
Time
Ayyyy-MM-ddTHH:mm:00+01:00
Eté  
[Dernier Dimanche Mars-1h UTC 
,Dernier Dimanche Oct. -1h UTC]
UTC+2CEST 
Central European 
Summer Time
Byyyy-MM-ddTHH:mm:00+02:00
Heure (format HHmm, heure de Paris).
 
Période Fuseau horaire / Timezone Format ISO8601
Hiver 
[Dernier Dimanche Oct. -1h UTC 
,Dernier Dimanche Mars-1h UTC]
UTC+1CET 
Central European 
Time
A THH:mm:00+01:00
Eté  
[Dernier Dimanche Mars-1h UTC 
,Dernier Dimanche Oct. -1h UTC]
UTC+2CEST 
Central European 
Summer Time
B THH:mm:00+02:00
 
Code/Id alphanumérique (pas d'accent, peut contenir les caractères -._)
 
Volatilité des Identifiants  
Les identifiants sont volatiles et ont une durée de validité allant de plusieurs années à quelques semaines. La pérennité de ces identifiants n'est pas assurée par Open data api. 
 
Les codes (eg. numéro de ligne) ou textes (eg. nom de station) visibles par les usagers ont une plus grande durée de validité. 
Lors de la mise en place d'une application cliente de Open data api proposant une fonctionnalité raccourci ou favori, il est conseillé de s'appuyer sur les codes et noms identifiant l'objet plutôt que sur ces identifiants d'objet.
Texte en français (peut contenir des accents)
Expression sous forme de chaine de caractères
Expression sous forme de chaine de caractères (Contient [*s*], Commence par [s*], ...).
 
L'expression a pour format :
  • '*' ou null ou vide : toutes
  • 'str' : recherche exacte
  • 'str*' : commence par
  • '*str' : termine par
  • '*str*' : contient
  • 'n1@n2' : nombre compris entre n1 et n2
  • 'exp1,..,expn' : liste d'expressions (le séparateur ',' est équivalent à un OU logique)
  • si l'expression commence par '!', l'ensemble complémentaire est retourné
str représente n'importe quelle chaine et n un nombre. 
 
La comparaison s'effectue sans tenir compte de la casse. 
S'il s'agit d'un nom, la comparaison s'effectue en plus sans tenir compte des accents (eg. É, é et e sont considérés comme égaux).
Expression Line sous forme de chaine de caractères (Contient [*s*], Commence par [s*], ...).
 
Expressions simples cumulables avec " and " (eg. name=auber and *lazarre). 
3 mots réservés ajoutés à l'expression simple :
  • 'number' : le code ou l'id est un nombre
  • '@t' : lignes du domaine Théorique uniquement
  • '@r' : lignes du domaine Temps uniquement
Expression Station sous forme de chaine de caractères (Contient [*s*], Commence par [s*], ...).
 
Expressions simples cumulables avec " and " (eg. name=auber and *lazarre).
Expression GeoPoint de type Station. 
Format : {Nom de station} [{Suffixe Réseau}{Code de ligne}] 
• Nom : exact ou phonétique (en termes techniques, obtenu via IV-Lexico.Recherche) 
• La chaine entre crochets est optionnelle

 
Certaines stations portent le même nom alors qu'elles sont distinctes (eg. Saint-Fargeau, Malesherbes). 
Le suffixe "Réseau" permet de les différencier (eg. Malesherbes [Metro], Malesherbes [RER]).  
 
Ce suffixe peut être complété par le code ligne. 
Il permet ainsi d'élargir le domaine geoPoint station aux bus (réseaux busratp, noctilienratp et noctiliensncf). Le réseau Optile (ou autres réseaux de bus) ne fait pas partie de cet ensemble car le code ligne est peu identifiant (eg. 14 lignes avec le code 20).  
Pour les bus, le code ligne est obligatoire (le réseau n'est pas assez discriminant). 
 
Cette notation permet donc de préciser la demande. 
Expression GeoPoint de type Adresse/Lieu. 
Format : {Nom de rue ou de lieu} {VILLE ou CP} 
• Nom : exact ou phonétique (en termes techniques, obtenu via IV-Lexico.Recherche) 
• VILLE : en majuscule sans espace (utiliser des tirets à la place) 
• CP : Code postal (nombre de 5 chiffres)

 
 
Groupement de lignes : Réseau (réseau primaire) ou Groupes (Groupement de réseaux pour critères de recherche seulement)).
Groupement de lignes : Réseau Primaire.
Une ligne appartient à UN réseau primaire. 
 
Les réseaux primaires de la forme "{reseau}+" correspondent aux lignes doubles (futures, passées, circulaant uniquement le week end,...). 
Ces dernières sont des lignes référencées en base mais pas forcément en circulation. Elles permettent par exemple de calculer des itinéraires futurs. 
 
metro Métro
rer RER
busratp Bus RATP
busratp Tramway
noctilienratp Noctilien RATP
noctiliensncf Noctilien SNCF
sncf SNCF Transilien
autre 
(eg. optile)
Autres Bus 
(eg. Optile)
Groupement de lignes : Groupement de réseaux (pour critères de recherche seulement).
Une ligne appartient à N groupements de réseaux. 
 
bus busratp + noctilien* + optile + autres bus 
<=> Tous sauf ferretram (metro,rer,sncf,tram).
ferretram metro + rer + sncf + tram 
<=> Tous sauf bus.
 
bustram bus + tram 
<=> Tous sauf ferre (metro,rer,sncf).
ferre metro + rer + sncf 
<=> Tous sauf bus et tram.
 
noctilien noctilienratp + noctiliensncf
bustramjour bus + tram - noctilien
Critère Domaine de ligne : Domaine (t/r) ou Critère étendu (rANDt/rTHENt).
Domaine de ligne.
 
t Domaine Théorique
r Domaine temps Réel
Critère étendu Domaine.
 
rANDt Critère Domaine : temps Réel et Théorique 
Avec ce critère, les lignes demandées sont recherchées dans les 2 domaines. 
Une ligne référencée dans les 2 domaines apparaitra 2 fois : sa version temps Réel et sa version Théorique.
rTHENt Critère Domaine : temps Réel puis Théorique 
Avec ce critère, les lignes demandées sont recherchées en 1er lieu dans le domaine temps Réel puis, dans le domaine Théorique si la 1ère recherche a été infructueuse.
Critère Direction-Sens : Sens (A/R) ou Critère étendu (*).
Sens de la direction.
 
A Aller (vers les fins de ligne no 1).
R Retour (vers les fins de ligne no 2).
Critère étendu Direction-Sens.
 
* Permet d'indiquer lors d'une requête que l'on souhaite l'information pour les 2 sens.
 
Web Service Response : Message d'ambiguïté
 
Reseau
Ambiguous Reseau Ambiguïté sur critère Réseau.
Line
Ambiguous Line Ambiguïté sur critère Ligne.
Direction
Ambiguous Direction Ambiguïté sur critère Direction.
Station
Ambiguous Station Ambiguïté sur critère Station
Ambiguous Station End Line Ambiguïté sur critère Station Fin de ligne
Ambiguous Station End Ambiguïté sur critère Station Fin de mission