Prochain Train utilise l'API SNCF pour afficher de façon rapide et compacte les prochains départs d'une sélection personnalisée de gares, différenciées entre le matin et le soir. Il utilise aussi l'API de MétéoFrance pour afficher les prévisions de pluie dans l'heure.
On peut l'utiliser de différentes manières:J'utilise personnellement quotidiennement cette URL:
https://crteknologies.fr/tools/prochain-train/get.php#sm1=87611921&lm1=DDEF5935-0332-4ED5-B499-5C664AF7CF05&sm1x=jourdain;auch&sm2=87611467&lm2=DDEF5935-0332-4ED5-B499-5C664AF7CF05;53865649-1C74-4657-9123-DA7EDE71D3DB&sm2x=jourdain;auch&rcm=43.616294,1.314077&se1=87611004&le1=DDEF5935-0332-4ED5-B499-5C664AF7CF05&se2=87446179&le2=DDEF5935-0332-4ED5-B499-5C664AF7CF05;53865649-1C74-4657-9123-DA7EDE71D3DB&se2x=matabiau&rce=43.611301,1.453561&count=4&format=tableL'URL se decompose ainsi:
https://crteknologies.fr/tools/prochain-train/get.php: l'URL du service sur ce site.
#: les paramètres sont fournis via un indicateur de fragment (introduit par un #) plutôt qu'une chaine de requête (introduite par un ?), afin de pas être envoyés au serveur, pour des questions de vie privée.
sm1=87611921: l'identifiant de la première station à suivre le matin (StationMorning1) (ici Colomiers Lycée International).
lm1=DDEF5935-0332-4ED5-B499-5C664AF7CF05: les identifiants des lignes SNCF à suivre sur cette première station du matin (LinesMorning1), séparés par des ";" (ici Toulouse-Auch)
sm1x=jourdain;auch: une liste de chaines de caractères séparées par point virgule, servant à exclure les trains dont la destination contient une de ces chaines de caractères afin de ne garder que ceux qui vont dans le bon sens (StationMorning1eXclude) (ici je veux seulement le matin les trains qui vont vers Toulouse).
sm2=87611467: l'identifiant d'une seconde gare à suivre le matin (ici Colomiers).
lm2=DDEF5935-0332-4ED5-B499-5C664AF7CF05;53865649-1C74-4657-9123-DA7EDE71D3DB: les identifiants des lignes SNCF à suivre sur cette seconde station du matin. Il y a ici deux lignes.
sm2x=jourdain;auch: la liste d'exclusions pour cette seconde gare (je pourrais également exclure Matabiau afin de ne pas avoir en double avec la première gare les trains qui vont au même endroit, mais seulement les trains supplémentaires qui ne circulent que entre Colomiers et Arènes, mais cela est risqué car quand les trains changent de départ ils n'apparaitraient nulle part).
rcm=43.616294,1.314077: les coordonnées par défaut pour les prévisions de pluie le matin (RainCoordinatesMorning).
se1=87611004: l'identifiant de la première station à suivre le soir (StationEvening1) (ici Toulouse Matabiau). Pas besoin de liste d'exclusion dans ce cas car c'est le départ de la ligne.
le1=DDEF5935-0332-4ED5-B499-5C664AF7CF05: les identifiants des lignes SNCF à suivre sur cette première station du soir (LineEvening1).
se2=87446179: l'identifiant d'une seconde gare à suivre le soir (ici Saint-Cyprien Arènes).
le2=DDEF5935-0332-4ED5-B499-5C664AF7CF05;53865649-1C74-4657-9123-DA7EDE71D3DB: les identifiants des lignes SNCF à suivre sur cette seconde station du soir. Il y a ici deux lignes.
se2x=matabiau;jourdain;auch: la liste d'exclusions pour cette seconde gare (même remarque que précédemment sur la possibilité d'ajouter "jourdain;auch" pour ne pas avoir les mêmes trains que l'autre gare).
rce=43.611301,1.453561: les coordonnées par défaut pour les prévisions de pluie le soir (Rain Coordinates Evening).
count=4: affichage des quatre prochains départs pour chaque gare.
format=table: affichage des départs sous forme de tableau (autres choix:
liste).
TODO
https://api.sncf.com/v1/coverage/sncf/pt_objects?q=ter%20toulouse&count=100
Ne garder que le code hexadécimal séparé par des tirets, le reste est ajouté.
TODO
https://api.sncf.com/v1/coverage/sncf/places?q=colomiers&count=100
Ne garder que la valeur numérique, le reste est ajouté.
https://www.garesetconnexions.sncf/fr/gares-services(chercher le champ
data-uic=et enlever les deux zéros devant).
Les coordonnées doivent être fournies dans l'URL pour ne pas avoir à attendre le téléchargement des horaires de l'API SNCF pour pouvoir récupérer les coordonnées de la gare avant de lancer la requête sur MétéoFrance (elles se font en parallèle). Cela permet également de choisir d'autres coordonnées, par exemple plus proches du domicile ou du lieu de travail. Elles peuvent par exemple être obtenues dans votre site de cartographie préféré.
Les coordonnées fournies ne sont cependant que des valeurs de secours, car la page va demander votre position courante si elle est disponible. Depuis un ordinateur, cette position sera peu précise car obtenue par l'IP de votre connexion internet, mais sera aussi trop lente et il se rabattra sur les valeurs de secours. Sur un smartphone, il faut avoir activé le positionnement, et autoriser la page à y accéder. Seul le code exécuté sur votre appareil a accès à ces coordonnées, pas le serveur, il n'y a donc aucun problème de confidentialité (mais l'API de MétéoFrance y a accès).
La dernière ligne précise quelles coordonnées ont été utilisées, "def" pour le valeurs de secours par défaut, et "cur" pour les valeurs courantes. Un lien permet également de visualiser ces coordonnées.
L'API officielle de la SNCF est exploitée, notamment la requête "departures" :
https://api.sncf.com/v1/coverage/sncf/stop_areas/stop_area:SNCF:<station_id>/lines/line:SNCF:FR:Line::<line_id>:/departures?count=9
Une clé d'accès personnelle est nécessaire pour accéder à l'API, obtenable gratuitement sur le site de l'API SNCF. Si vous forkez le projet, s'il vous plait demandez votre propre clé et n'utilisez pas celle de ce site.
Le code source de cet outil est disponible sur GitHub