Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Les objectifs de la documentation 05 - - Comprendre les liens Identifier les paramètres Faciliter la prise en main entre les données d'appel et ce qu'ils Île-de-France Mobilités représentent des API 2 2
Sommaire 1. Préambule 2. Présentation des services disponibles 3. Comment accéder aux APIs ? 4. API pour la recherche d’itinéraires 5. API temps réel 6. Liens entre les données 3
01 - Préambule Île-de-France Mobilités 85 Opérateurs 1 900 Lignes 40 000 Arrêts Île-de-France Mobilités collecte les données des opérateurs de transport d’Île-de-France. Ces données décrivent notamment l’offre prévue de transport collectif : • Lignes • Arrêts • Parcours • Horaires • Calendriers • … Ces informations alimentent les services d’information d’Île-de-France Mobilités (Vianavigo), ceux des transporteurs, et la plateforme Open Data. 5
01 - Préambule Dispositifs de diffusion de l’offre de transport francilienne Sur le portail des API Sur le site Open Data d’Île-de-France Mobilités d’Île-de-France Mobilités Type Services enrichis (itinéraires, etc.) Type Données brutes sur tous les horaires s’appuyant sur les horaires prévus OPTILE, prévus OPTILE, RATP, SNCF RATP, SNCF et données temps réel (requête Via JDD « Horaires prévus sur les lignes de unitaire ou requête globale) transport en commun d'Île-de-France Via Différentes API en fonction de l’usage (GTFS) » Licence ODBL Licence ODBL Actualisation Toutes les semaines Actualisation Toutes les semaines Conditions • Inscription préalable au portail et acceptation des CGU • Quotas et barèmes de redevance 6
02 - Présentation des services disponibles Les différentes API Calculateur Vianavigo – Accès L’exploration du réseau Les horaires de passages générique Trouvez les informations à théoriques Trouvez toutes les informations à propos du propos du réseau de transport Accédez aux horaires des lignes de réseau de transport francilien (horaires, francilien (structure du réseau, l’ensemble du réseau (horaires Données itinéraires, structure du réseau, lignes et lignes et arrêts,…) théoriques) théoriques arrêts,…) Le calcul d’isochrones La recherche de lieux La recherche d’itinéraires Représentez l’accessibilité d’un Recherchez des lieux grâce à Obtenez des propositions de trajets lieu en transports en commun l’auto-complétion et la en transports en commun sur le depuis toute l’Île-de-France recherche à proximité territoire francilien Données L’info trafic en temps réel Les prochains passages en temps réel temps réel Accédez aux messages de perturbations en Les prochains passages en temps réel en requête temps réel unitaire ou requête globale 8
03 - Comment accéder aux API ? - 9 9
03 - Comment accéder aux API ? Généralités L’utilisation des API est gratuite. Un mail vous est envoyé dans la limite des quotas fixés dans le barème de lorsque vous atteignez 80% redevance. de votre quota. L’accès aux API est sécurisé par une authentification préalable. Le protocole utilisé est le OAuth2. La création d’un compte est obligatoire. Elle se fait directement depuis le site via l’onglet « Connexion » Les Conditions Générales d’Utilisation des API doivent être acceptées. L’utilisation des API est soumise à l’acceptation des CGU et de la licence sur les données. Une fois identifié, et après avoir accepté les CGU, vous aurez automatiques trois applications crées. 10
03 - Comment accéder aux API ? Applications Chacune des trois applications permet de gérer l’accès aux API selon leur nature (temps réel unitaire, temps réel global et API du calculateur d’itinéraires Navitia). 1 01-Unitary-Real-Time_email@nomdedomaine.com regroupe l’accès aux API Temps Réel (par requêtes unitaires) dans la limite d’un quota de 1 000 000 requêtes / jour. 2 02-Global-Real-Time_email@nomdedomaine.com donne l’accès à l’API Temps Réel de prochains passages (par requête globale) dans la limite d’un quota de 1 000 requêtes / jour. 3 03-Journey-Planner_email@nomdedomaine.com Regroupe l’accès aux API Île-de-France Mobilités (hors API Temps Réel) dans la limite d’un quota de 20 000 requêtes / jour. Elle contient notamment le calculateur d'itinéraires Navitia. Les noms et descriptifs d’applications peuvent être modifiés et personnalisés depuis le portail. 11
03 - Comment accéder aux API ? Lier les API à vos applications Avant toute première utilisation, il est nécessaire de lier les API à vos applications. Pour cela, vous devez : • Aller dans l’onglet « Application » et sélectionner celle dont vous souhaitez utiliser les API, • Cliquer sur « Editer Application », • Cocher les API à utiliser via l’application • Cliquer sur « Appliquer les modifications » 12
03 - Comment accéder aux API ? Lier les API à vos applications Pour savoir si une API est bien liée à une application, vous pouvez : • Aller dans l’onglet « Catalogue » • Cliquer sur « Tester cette API » Si l’API n’est pas liée à une application, le Si l’API est bien liée à une application, le message d’alerte suivant apparait : formulaire suivant est accessible : 13
03 - Comment accéder aux API ? Access Token Dans le formulaire de demande d’Access Token : • Sélectionner votre application dans 03-Journey-Planner-email@nomdedomaine.com - Votre Client ID 1 « Select Client Id » • Sélectionner « Client credentials » 2 comme Flow Oauth. 3 • Cliquer sur « Demande d’Access Token » • Cliquer sur « Autoriser » 4 • Votre Token a été généré Un Token est valable sur Votre Token une durée d’une heure. 14
03 - Comment accéder aux API ? Différence entre API et application Nos offres tarifaires Application sont disponibles sur le portail Une application regroupe l'accès à un groupe d’API. Elle permet de mettre en place un quota de requêtes. API Une API (Application Programming Interface) est une interface de programmation qui permet de se « brancher » sur une application pour échanger des données. L'API permet la consommation de données après avoir été liée à l'application lui correspondant. 15
03 - Comment accéder aux API ? Trouver votre Client ID et Client Secret Ces identifiants (ou « credentiels OAuth ») permettent de vous faire reconnaître lors de la demande d’un token. Vous pouvez donc les trouver en cliquant sur une application dans la sous-partie « Credentiels OAuth ». Votre client ID 16
03 - Comment accéder aux API ? Trouver l’url d’une API L’url pour requêter une API est la concaténation du champs Host suivi du Path de la méthode désirée. Ainsi, pour le Calculateur Vianavigo – Accès générique (Navitia) et la méthode get_coverage__region__places l’url est : https://traffic.api.iledefrance-mobilites.fr/v1/mri/coverage/fr-idf/places 17
03 - Comment accéder aux API ? Connaitre les différents paramètres possibles Les différents paramètres possibles d’une méthode sont définis dans Query parameters. Dans l’exemple suivant, la méthode getMessages de l’application Messages Info Trafic (plateforme Île-de-France Mobilités) 1.0.0. Les différents paramètres sont : - LineRef - StopPointRef - InfoChannelRef 18
03 - Comment accéder aux API ? Différents codes de réponse possibles A la fin de chaque requête, vous recevez un code HTTP ayant une signification précise : 200 : La requête a abouti et vous recevez une réponse. 401 & 403 : Vous n’êtes pas autorisé à accéder à l’API. Nous vous conseillons de renouveler votre token et de vérifier que l’API est bien liée à votre application. 404 : Votre requête contient une erreur. Nous vous conseillons de vérifier vos paramètres d’appel. 429 : Vous avez atteint votre quota. Vous pouvez accéder à toutes les informations sur les quotas depuis la page d’offre 500 : L’API est indisponible. 19
03 - Comment accéder aux API ? Exemples de code Python : Obtenir un token Ligne 1 – Importation de la bibliothèque requests Ligne 2 – Affecter l’url du token à la variable urlOAuth (string) Ligne 3 – Affecter votre client Id à la variable client_id (string) 1 import requests Ligne 4 – Affecter votre client secret à la variable client_secret (string) 2 urlOAuth = 'https://as.api.iledefrance- > Trouver mon client_id et mon client_secret ? mobilites.fr/api/oauth/token' 3 client_id='' 4 client_secret='' Lignes 6 - 11 – Affecter à data un dictionnaire qui va définir comment 5 accéder au token avec comme variables 6 data =dict( grant_type(string) doit être défini à ‘client_credentials’ 7 grant_type='client_credentials', 8 scope='read-data', scope(string) doit être défini à ‘read-data’ pour lire les données 9 client_id=client_id, client_id(string) doit être rempli par votre client ID 10 client_secret=client_secret client_secret(string) doit être rempli par votre client secret 11 ) Ligne 13 – La fonction requests.post prend deux arguments en entrée 12 13 response = requests.post(urlOAuth, data=data) l’url du token et la manière dont on souscrit à ce token défini dans 14 print(response.json) data. Pour utiliser cette fonction la bibliothèque requests doit être 15 installée. La réponse est stockée dans response(response – objet décrit 16 if response.status_code != 200: par la bibliothèque Requests) print('Status:', response.status_code, 'Erreur Ligne 14 – Affichage de la réponse dans le format json 17 sur la requête; fin de programme') 18 exit() Lignes 16 - 18 – Test du statut de la requête : Si status_code (integer) 19 est différent de 200 (OK) alors affichage du statut et d’un message 20 jsonData = response.json() d’erreur puis fin du programme. 21 token = jsonData['access_token'] Ligne 20 – Si status_code est égal à 200 alors stockage de la réponse au format json dans jsonData (dictionnary) Ligne 21 – Stockage du token à utilisé dans la variable token grâce à la réponse jsonData 20
03 - Comment accéder aux API ? Exemples de code Python : Requêter une API Ligne 22 – Affecter l’url de l’API à la variable url. > Trouver l’url de l’API ? 22 url = 'https://traffic.api.iledefrance- mobilites.fr/v1/tr-messages-it' Ligne 24 - 26 – Affecter à params un dictionnaire qui va définir les 23 24 params =dict( paramètres de la requête. Cela permet de filtrer la requête par 25 LineRef='ALL’ exemple. 26 ) > Comment connaitre les différents paramètres possibles ? 27 28 headers = { 29 'Accept-Encoding' : 'gzip’, Ligne 28 - 31 – Affecter à headers un dictionnaire qui va définir les 30 'Authorization' : 'Bearer ' + token encodages de la requête. 31 } 32 Ligne 33 – La fonction requests.get prend trois arguments en entrée 33 response = requests.get(url, params=params, l’url de l’API et les paramètres de la requête et les headers de celle-ci. headers=headers) 34 35 if response.status_code != 200: Lignes 35 - 37 Test du statut de la requête : Si status_code (integer) est 36 print('Status:', response.status_code, 'Erreur différent de 200 (OK) alors affichage du statut et d’un message sur la requête; fin de programme') d’erreur puis fin du programme. 37 exit() 38 39 jsonData = response.json() Ligne 39 – Si status_code est égal à 200 alors stockage de la réponse au format json dans jsonData (dictionnary) 21
03 - Comment accéder aux API ? Les bonnes pratiques d’utilisation Les quotas d’appels sont à la journée : il Il est recommandé d’activer dans les est fortement recommandé de lisser le headers de vos requêtes l’élément nombre de requêtes dans le temps afin « Accept-encoding : gzip, deflate » afin de ne pas perturber le fonctionnement de diminuer la bande passante. pour les autres utilisateurs. Compte tenu de la taille très importante de la réponse à la requête globale « Prochains Passages » , elle sera transmise en mode compressé. 22
04 - Les API pour la recherche d’itinéraires (Navitia) - 23 23
04 - API pour la recherche d’itinéraires (Navitia) Application d’accès aux API de recherche d’itinéraires Les API de recherche d’itinéraires s’appuient sur la technologie Navitia. Elles sont accessibles via l’application : Documentation 03-Journey-Planner_email@nomdedomaine.com technique sur Navitia : https://doc.navitia.io/ API concernées = API Données théoriques Calculateur Vianavigo – L’exploration du réseau Les horaires de passages Accès générique théoriques Le calcul d’isochrones La recherche de lieux La recherche d’itinéraires 24
04 - API pour la recherche d’itinéraires (Navitia) Qualité des données La mise à jour des données est hebdomadaire. Elle est réalisée le vendredi soir. Les données couvrent les trois prochaines semaines. L'intégralité des horaires des RER A et B sont transmis par la SNCF. Les horaires des lignes SNCF incluent les adaptations faites lors de travaux prévus, ainsi que les substitutions faites en bus (ex : un trajet en bus sera proposé si un tronçon est coupé pour cause de travaux). Les horaires des lignes RATP n'incluent pas en règle générale, les adaptations faites lors de travaux prévus, ni les navettes de bus de substitution mises en place (ex : Fermeture d'une station de métro). Contrairement aux fichiers issus du GTFS, les données des API prennent en compte les Interdictions de Trafic Local (ITL) qui existent parfois sur certaines lignes de bus OPTILE. 25
04 - API pour la recherche d’itinéraires (Navitia) Paramètres d’appels line Une ligne (« line ») est un ensemble d’itinéraires regroupés sous un même nom. Ex : line:0:100110001:1 (Métro 1) route Un (« route ») définit un enchaînement structuré d’arrêts. Une ligne simple est généralement composée de 2 itinéraires : un décrivant le sens aller, l’autre décrivant le sens retour. route:0:1001100010001A (Métro 1 – Sens la Défense) vehicle_journey Une course (« vehicle_journey ») est la déclinaison d’un itinéraire à un horaire donné. Une course attribue à chaque arrêt de l’itinéraire un horaire de passage. Sur une journée, une course est unique : deux véhicules d’une même ligne effectuent chacun une course différente. Ex : vehicle_journey:0:111721349-1 (Métro 1 - une course du 10 février 2020) 26
04 - API pour la recherche d’itinéraires (Navitia) Paramètres d’appels company Un transporteur Ex : company:0:800 (SNCF) network Un réseau commercial Ex : network:0:15 (Bus Haut Val d’Oise) stop_area Une zone de lieu (« stop_area ») désigne une zone regroupant plusieurs points d’arrêt. Ex : stop_area:0:SA:8768600 (Gare de Lyon) stop_point Un point d’arrêt d’un seul et unique transporteur Ex : stop_point:0:SP:59620 (Chaussée d’Antin-Lafayette, ligne 9 du métro) stop_point est une donnée non pérenne pour le bus. Elle est susceptible d’être changée chaque semaine à la publication du GTFS. Les stop_points sont stables pour le ferré. 27
04 - API pour la recherche d’itinéraires (Navitia) Utiliser le paramètre {URI} dans l’API générique Navitia Le paramètre {URI} signifie que le périmètre d’appel est intégré dans l’URL de la requête et ne se trouve pas, comme la plupart du temps, à la fin de l’URL de requête. Le paramètre {URI} doit être encodé en HTML Exemple 1 Exemple 2 Objectif : Objectif : Récupérer tous les stop_points du stop_area Récupérer tous les stop_points de la ligne de de la Gare de Lyon (stop_area:0:SA:8768600) métro 1 (line:0:100110001:1) On utilise la méthode : On utilise la méthode : GET/v1/mri/coverage/fr-idf/{uri}/stop_points GET/v1/mri/coverage/fr-idf/{uri}/stop_points Avec le paramètre d’appel : Avec le paramètre d’appel : stop_areas%2Fstop_area:0:SA:8768600 lines%2Fline:0:100110001:1 28
05 - API Temps Réel - Applications d’accès aux API Temps réel Source : Plateforme d’échanges Île-de-France Mobilités Source : Service Vianavigo par Île-de-France Mobilités 29 29
05 - API Temps Réel - Applications d’accès aux API Temps réel Source : Plateforme d’échanges Île-de-France Mobilités Source : Service Vianavigo par Île-de-France Mobilités 30 30
05 - API Temps Réel - Applications d’accès aux API Temps réel Applications d’accès aux API Temps réel 2 sources de données • Plateforme Île-de-France Mobilités Les API temps réels sont accessibles via les applications : • Source Vianavigo 01-Unitary-Real-Time_email@nomdedomaine.com 02-Global-Real-Time_email@nomdedomaine.com Prochains passages regroupés par course Messages Info Trafic (plateforme Île-de-France Mobilités) Accédez aux messages de perturbations en temps réel Prochains Passages Prochains Passages (plateforme Île-de-France Mobilités) (requête globale) Les prochains passages en temps réel en requête Les prochains passages en unitaire temps réel requête globale Prochains Passages (source Vianavigo) Les prochains passages en temps réel en requête unitaire 31
05 - API Temps Réel - Applications d’accès aux API Temps réel Source : Plateforme d’échanges Île-de-France Mobilités Source : Service Vianavigo par Île-de-France Mobilités 32 32
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités Les données RATP sur les Schéma de récupération des données bus et tramways ne sont pas disponibles. SAEIV* Concentrateurs SAEIV* Messages Info Trafic (plateforme Île-de-France Mobilités) Transporteurs Groupe Accédez aux messages de perturbations en temps réel Réutilisateurs Métros - RER Plateforme d’échanges Île- Prochains Passages SAEIV* de-France (plateforme Île-de- Mobilités France Mobilités) Transporteurs indépendants Les prochains passages en temps réel en requête unitaire et requête globale *SAEIV = Système d’Aide à l’Exploitation et à l’Information Voyageur La plateforme : • récolte les informations • les diffuse aux autres transporteurs • les met à disposition de tout le monde (Opendata) 33
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités Données diffusées Le portail des normes pour les données d'offre du transport Le service collectif: http://www.normes- Prochains passages pour toutes les lignes disponibles. donnees-tc.org/ Prochains passages à un arrêt. Infos trafic / perturbations. Les données disponibles Pour connaitre le périmètre (arrêts / lignes) des données disponibles via la plateforme d’échanges d’Île-de-France Mobilités suivez ce lien. La liste des données disponibles est mise à jour toutes les 2 semaines. Le format des horaires Le profil des données Norme internationale ISO 8601 en UTC SIRI Lite 34
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités Identification des objets Identifications des lignes L’identifiant d’une ligne (LineRef) doit être passé sous la forme : « STIF:Line::XXXXX: » avec XXXXX l’identifiant de la ligne dans le Référentiel Île-de-France Mobilités Exemples : • Pour la ligne B du RER, l’identifiant de la ligne dans le Référentiel Île-de-France Mobilités est C01743, le pattern est donc « STIF:Line::C01743: » • Pour la ligne de bus Phébus A, l’identifiant de la ligne dans le Référentiel Île-de-France Mobilité est C00692, le pattern est donc « STIF:Line::C00692: » 35
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités Identification des objets Identifications des courses L’identifiant de la course (DatedVehicleJourneyRef) identifie de manière unique une course pour tous les transporteurs. La course est donc reconstituée dans une réponse à une requête globale. La RATP ne fournit pas d’identifiants de courses mais un compteur technique sans lien métier avec la notion de course. Nous obtenons alors dans la réponse à la requête globale pour une même ligne et un même sens tous les véhicules s’arrêtant à la même heure quel que soit l’arrêt. Par conséquent, dans les réponses aux requêtes globales, les courses RATP ne sont pas correctement reconstituées. Les prochains passages aux arrêts sont cependant tous renseignés dans la réponse. 36
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités Identification des objets Identifications des arrêts L’identifiant d’un arrêt (MonitoringRef) doit être passé sous la forme : Identifiants des arrêts physiques Identifiants des arrêts commerciaux « STIF:StopPoint:Q:XXXXX: » « STIF:StopArea:SP:XXXXX: » avec XXXXX l’identifiant du référentiel avec XXXXX l’identifiant du référentiel des des arrêts ZDE arrêts ZDL ou LDA Exemples • Pour l’arrêt « Gare de Massy-Palaiseau » sur la ligne B du RER, l’identifiant du référentiel est 412833, le pattern est « STIF:StopPoint:Q:412833: » - Granularité ZDE • Pour la zone de lieu « Gare de Massy-Palaiseau » des lignes B et C du RER, l’identifiant du référentiel est 58774, le pattern est « STIF:StopArea:SP:58774: » - Granularité ZDL • Pour le lieu d’arrêt « Gare de Massy-Palaiseau » comprenant les gares routières environnantes, l’identifiant est 63244, le pattern est « STIF:StopArea:SP:63244: » - Granularité LDA 37
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités Focus sur les API « Prochains passages (requête globale et unitaire) » Pour tous les modes, les données sont disponibles sur une profondeur de trois heures au maximum pour les transporteurs qui le permettent. Tant que le véhicule n’a pas commencé sa course, le système fournit les horaires de passages planifiés par l’exploitant la veille de la journée en cours. Pour les courses en circulation : Mode Bus : prévision de passage à un Mode ferré : prévision de passage à arrêt en fonction de la localisation du un arrêt en fonction de la localisation bus en tenant compte des du véhicule. circulations précédentes. Les prochains passages sont des données de prévision et donc par définition un écart peut être rencontré entre l’estimation et le passage réel. La précision se dégrade en fonction du temps, notamment au-delà de 20 minutes pour le bus et 30 minutes pour les modes ferrés. 38
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités Focus sur les API « Prochains passages (requête globale et unitaire) » AimedArrival/DepartureTime ExpectedArrival/DepartureTime Horaires théoriques de départ et d’arrivée Prédictions d’horaires de prochains passages établis la veille par le transporteur en prenant prenant en compte la position réelle du en compte la disponibilité des conducteurs et véhicule, le temps restant pour atteindre un des véhicules. Ces horaires ne sont pas arrêt et les temps de parcours observés sur les toujours disponibles. circulations précédentes. DirectionRef Il n’y a pas de référentiel partagé à l’échelle d’Île-de- France Mobilités, le champ est donc facultatif. Cependant le champ DestinationRef (terminus de la course) est systématiquement renseigné. 39
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités Focus sur l’API « Messages Info Trafic passages » RATP : ensemble des infos trafics disponibles en gares RER et stations de métro et sur les médias RATP. SNCF : informations disponibles sur les écrans disposés dans les gares. Bus : informations disponibles sur les écrans disposés aux arrêts de bus. Pour la SNCF et le réseau de Bus OPTILE, les API temps réel ne disposent pas des informations qui sont fournies sur les médias (site internet, twitter, …). 40
05 - API Temps Réel - Applications d’accès aux API Temps réel Source : Plateforme d’échanges Île-de-France Mobilités Source : Service Vianavigo par Île-de-France Mobilités 41 41
05 - API Temps Réel - Source : Service Vianavigo par Île-de-France Mobilités Schéma de récupération des données Opendata Vianavigo SAEIV par Prochains Passages Réutilisateurs Île-de-France (source Vianavigo) Mobilités Les prochains passages en Webservice temps réel en requête unitaire dédié Le canal Vianavigo est utilisé en complément, notamment sur le bus RATP et les Tramways, le périmètre des données n’étant pas encore totalement complet via la plateforme d'échanges d’Île-de-France Mobilités. 42
05 - API Temps Réel - Source : Service Vianavigo par Île-de-France Mobilités Les données diffusées Le service A terme, les données disponibles via Vianavigo vont disparaitre. Toutes les Prochains passages à un arrêt. données temps réel seront disponibles via la plateforme d’échanges d’Île-de-France Mobilités. Les utilisateurs seront informés au moins un mois avant toute bascule nécessaire. Les données disponibles Vianavigo permet d’obtenir les temps d’attente des prochains passages à l’ensemble des arrêts (métro, ferré, bus…) des transporteurs suivants : SNCF Transilien, RATP (bus, tram, métro, RER) et Transdev (réseaux TRA, CSO, Apolo 7, Montesson, Rambouillet, Vulaines, Lieusaint et Vaux le Pénil). Le format des horaires Les horaires de passage à l’arrêt sont fournis en temps d’attente exprimé en minutes. 43
05 - API Temps Réel - Source : Service Vianavigo par Île-de-France Mobilités Identification des objets Identification des lignes L’identifiant d’une ligne (Line_id) est le même que celui utilisé pour les API basées sur la solution Navitia(route_id). Il doit être passé sous la forme : « line:0:XXXXX » avec XXXXX le route_id de la ligne Exemples : • Pour la ligne C du RER, l’identifiant Navitia route_id de la ligne est 810:C, le pattern est donc « line:0:810:C ». • Pour la ligne 12 du métro, l’identifiant Navitia route_id de la ligne est 100110012:12, le pattern est donc « line:0:100110012:12 ». • Pour la ligne de bus Transdev Mélibus C, l’identifiant Navitia route_id de la ligne est 066066022:C , le pattern est donc « line:0:066066022:C ». Pour plus de détails sur les identifiants GTFS, voir la documentation GTFS. Il est aussi possible de passer en paramètre l’identifiant utilisé par les API Île-de-France Mobilités (external_code). 44
05 - API Temps Réel - Source : Service Vianavigo par Île-de-France Mobilités Identification des objets Identification des arrêts L’identifiant d’une ligne (stop_point_id ) est le même que celui utilisé pour les API basées sur la solution Navitia (stop_id). Il doit être passé sous la forme : « stop_point:0:SP:XXXXX » avec XXXXX le stop_id de l’arrêt physique Exemples : • Pour l’arrêt Gare des Invalides de la ligne RER C, l’identifiant de l’arrêt physique stop_id est « stopPoint:8739303:800:C », le pattern est donc « stop_point:0:SP:8739303:800:C ». • Pour l’arrêt Gare de Melun de la ligne de bus Transdev Mélibus C, l’identifiant de l’arrêt physique est le « stopPoint:27:135 », le pattern est donc « stop_point:0:SP:27:135». 45
06 - Liens entre données - 46 46
06 - Lien entre données Liens dans le GTFS agency.txt agency_id routes.txt route_id trips.txt service_id calendar.txt trip_id calendar_dates.txt stop_times.txt stop_id stops.txt stop_id transfers.txt stop_extensions.txt 47
06 - Lien entre données Cas d’usage : Temps réel 1 Objectif : Données utilisées : Connaitre les prochains passages (TR Informations connues : • Le référentiel des Arrêts (Reflex.CSV) source plateforme Île-de-France • Le nom de l’arrêt • Le référentiel des Lignes Mobilités) de la ligne 10 de métro à l’arrêt • Le nom de la ligne • L’API prochains passages (source Charles Michels plateforme Île-de-France Mobilités) Identifier la LineRef de la ligne grâce au jeu de données « Requêter l’API prochains Référentiel des lignes de passages (source plateforme transport en commun d’île-de- Île-de-France Mobilités) France » 1 2 3 Identifier les stopPoints correspondant au nom de l’arrêt grâce au fichier Reflex.CSV dans le jeu de données « Référentiel des arrêts de transport en commun en Île-de- France » 48
06 - Lien entre données Cas d’usage : Temps réel 1 Objectif : Données utilisées : Connaitre les prochains passages (TR Informations connues : • Le référentiel des Arrêts (Reflex.CSV) source plateforme Île-de-France • Le nom de l’arrêt • Le référentiel des Lignes Mobilités) de la ligne 10 de métro à l’arrêt • Le nom de la ligne • L’API prochains passages (source Charles Michels plateforme Île-de-France Mobilités) 1 2 3 Identifier la LineRef de la ligne grâce au jeu de données « Référentiel des lignes de transport en commun d’île-de-France » En recherchant « métro 10 » dans le JDD On trouve la lineRef: [ C01380 ] 49
06 - Lien entre données Cas d’usage : Temps réel 1 Objectif : Données utilisées : Connaitre les prochains passages (TR Informations connues : • Le référentiel des Arrêts (Reflex.CSV) source plateforme Île-de-France • Le nom de l’arrêt • Le référentiel des Lignes Mobilités) de la ligne 10 de métro à l’arrêt • Le nom de la ligne • L’API prochains passages (source Charles Michels plateforme Île-de-France Mobilités) 1 2 3 Identifier les stopPoints correspondant au nom de l’arrêt grâce au fichier Reflex.CSV dans le Jeu de données « Référentiel des arrêts de transport en commun en Île-de- France » On trouve deux stop_points correspondant à « Charles Michels » et à des stations de métro : ZDEr_ID_REF_ ZDEr_ID_VERSION ZDEr_NOM ZDEr_ID_TYPE_ARRET ZDEr_LIBELLE_TYPE_ARRET GDL_NOM A 463076 1022350 Charles Michels 2Station de métro … 21986 1022344 Charles Michels 2Station de métro 50
06 - Lien entre données Cas d’usage : Temps réel 1 Objectif : Données utilisées :Le référentiel des Connaitre les prochains passages (TR Informations connues : • Le référentiel des Arrêts (Reflex.CSV) Arrêts source plateforme Île-de-France • Le nom de l’arrêt • Le référentiel des Lignes Mobilités) de la ligne 10 de métro à l’arrêt • Le nom de la ligne • L’API prochains passages (source Charles Michels plateforme Île-de-France Mobilités) 1 2 3 Requêter l’API prochains passages (source plateforme Île-de-France Mobilités) Après avoir récupérer un token, requêter L’API prochains passages (source plateforme Île-de- France Mobilités) avec comme paramètre les stopPoints trouvés. Seul le stopPoint 21986 permet d’obtenir des informations sur la ligne de métro 10 Il faut donc requêter l’API avec : MonitoringRef=STIF:StopPoint:Q:21986: et prendre en compte les données avec comme LineRef=STIF:Line::C01380 51
06 - Lien entre données Cas d’usage : Temps réel 2 Données utilisées : Objectif : Informations connues : • Le GTFS (stops.txt; trips.txt Connaitre les prochains passages (TR • Le nom de l’arrêt stop_times.txt) source Vianavigo) de la ligne 88 à l’arrêt • Le route id de la ligne • L’API prochains passages (source Charles Michels Vianavigo) Identifier les stop_point_id correspondant au nom de Rechercher les correspondances l’arrêt dans stops.txt stops/trips dans stop_times.txt disponible dans le GTFS disponible dans le GTFS 1 2 3 4 Identifier les trajets de la Requêter l’API ligne correspondant au route prochains passages id de la ligne dans trips.txt (source Vianavigo) disponible dans le GTFS 52
06 - Lien entre données Cas d’usage : Temps réel 2 Données utilisées : Objectif : Informations connues : • Le GTFS (stops.txt; trips.txt Connaitre les prochains passages (TR • Le nom de l’arrêt stop_times.txt) source Vianavigo) de la ligne 88 à l’arrêt • Le route id de la ligne • L’API prochains passages (source Charles Michels Vianavigo) 1 2 3 4 Identifier les stop_point_id correspondant au nom de l’arrêt dans stops.txt En faisant une recherche « Charles Michels » et en filtrant sur les « StopPoint » On trouve la liste suivante : [ StopPoint:59:5121364; StopPoint:59:5121363; StopPoint:59386; StopPoint:59:7913253; StopPoint:59:7913254; StopPoint:59:7921334; StopPoint:59:7921333; StopPoint:18:19503 ] 53
06 - Lien entre données Cas d’usage : Temps réel 2 Données utilisées : Objectif : Informations connues : • Le GTFS (stops.txt; trips.txt Connaitre les prochains passages (TR • Le nom de l’arrêt stop_times.txt) source Vianavigo) de la ligne 88 à l’arrêt • Le route id de la ligne • L’API prochains passages (source Charles Michels Vianavigo) 1 2 3 4 Identifier les trajets de la ligne correspondant au route id de la ligne dans trips.txt En faisant une recherche « 100100088:88» On extrait deux trajets (un dans chaque sens) : [ 110855728-1_131907 (sens Montsouris) 110855727-1_131906 (sens Porte d’Auteuil) ] 54
06 - Lien entre données Cas d’usage : Temps réel 2 Données utilisées : Objectif : Informations connues : • Le GTFS (stops.txt; trips.txt Connaitre les prochains passages (TR • Le nom de l’arrêt stop_times.txt) source Vianavigo) de la ligne 88 à l’arrêt • Le route id de la ligne • L’API prochains passages (source Charles Michels Vianavigo) 1 2 3 4 Rechercher les correspondances stops/trips dans stop_times.txt En faisant une recherche couplée : [ StopPoint:59:5121364 ; StopPoint:59:5121363 ; StopPoint:59386 ; StopPoint:59:7913253 ; [ 110855728-1_131907 ] StopPoint:59:7913254 ; StopPoint:59:7921334 ; StopPoint:59:7921333 ; StopPoint:18:19503 ] Le seul couple fonctionnant est 110855728-1_131907, StopPoint:59:7921334. Le stop_point_id correspondant à l’arrêt Charles Michel dans le sens Montsouris est StopPoint:59:7921334. 55
06 - Lien entre données Cas d’usage : Temps réel 2 Données utilisées : Objectif : Informations connues : • Le GTFS (stops.txt; trips.txt Connaitre les prochains passages (TR • Le nom de l’arrêt stop_times.txt) source Vianavigo) de la ligne 88 à l’arrêt • Le route id de la ligne • L’API prochains passages (source Charles Michels Vianavigo) 1 2 3 4 Requêter l’API prochains passages (source Vianavigo) Après avoir récupérer un token, requêter l’API Prochains passages (source Vianavigo) avec comme paramètre stop_point_id = stop_point:0:SP:59:7921334. Attention les stopPoints sont susceptibles de changer chaque semaine à la génération du GTFS. 56
Aidez-nous à améliorer cette - documentation En répondant - à ce questionnaire Questionnaire (durée : 5 minutes) 57 57
Site Open API portal.api.iledefrance-mobilites.fr Site Open Data data.iledefrance-mobilites.fr - Support Open Data opendata@iledefrance-mobilites.fr 58
Vous pouvez aussi lire