-> Amélioration de la mise en relation des TYPES DE TRAINS PAR CODE DE CIRCULATION (BETA)
3.7 KiB
Plan d'implémentation : Correction de l'affichage des types de trains (TER Régionaux)
Problématique analysée
Les données brutes issues des flux GTFS de la SNCF indiquent souvent simplement le type commercial générique "TER", sans préciser la marque régionale (Mobigo, liO, Rémi, Hauts-de-France, etc.).
Actuellement, l'application tente de déduire ces marques via un patch "en dur" dans src/utils/trainLogoHelper.js pour Mobigo (startsWith('89') ou startsWith('84')).
Ce patch est erroné :
- La série
84xxxxenglobe les trains des Hauts-de-France (ex:841xxx,844947sur Dunkerque/Valenciennes). C'est ce qui cause l'affichage "MOBIGO" en erreur sur l'Image 1. - L'Image 2 montre des trains d'Occitanie (876406) affichés comme "Rémi" et des confusions entre tranches. L'absence d'identification stricte basée sur un référentiel fiable entraîne des conflits.
Contraintes respectées
- Pas de variables locales / géographiques : Suppression totale ou non-utilisation des listes de villes associées à des régions (ex:
detectRegionByRouteScorequi associe 'Dunkerque' à HDF). - Utilisation du numéro de circulation de manière fiable : Nous nous basons strictement sur le référentiel d'EspaceRails fourni pour l'immatriculation des TER.
Actions prévues (Implémentation)
1. Refonte du fallback régional dans trainLogoHelper.js
Nous allons remplacer la condition codée en dur (et fausse) pour "MOBIGO" par un utilitaire de classification exhaustif basé fidèlement sur les données d'EspaceRails. Cette fonction sera appelée si le train est identifié comme un TER générique.
2. Plan de numérotation déterministe (Le "Dictionnaire" EspaceRails)
La fonction extraira le numéro (ex: 844947 => préfixe 844) et appliquera le tableau de correspondance suivant, construit à partir de votre source :
- Grand Est (Fluo)
- Alsace : 830 à 832, 160
- Lorraine : 833 à 837, 161
- Champagne-Ardenne : 838 à 840, 162
- Hauts-de-France
- Nord-Pas-de-Calais : 841 à 846, 163 à 164
- Picardie : 847 à 849, 164
- Normandie (Nomad)
- Haute-Normandie : 850 à 851, 165
- Basse-Normandie : 852 à 853, 165
- Bretagne (BreizhGo) : 854 à 856, 166
- Pays de la Loire (Aléop) : 857 à 859, 166 à 167
- Centre-Val de Loire (Rémi) : 860 à 862, 167 à 168
- Nouvelle-Aquitaine
- Poitou-Charentes : 863 à 864, 168
- Aquitaine : 865 à 867, 169
- Limousin : 868 à 869, 170
- Occitanie (liO)
- Midi-Pyrénées : 870 à 872, 171
- Languedoc-Roussillon : 876 à 878, 173
- Auvergne-Rhône-Alpes
- Auvergne : 873 à 875, 172
- Rhône-Alpes : 882 à 890, 175 à 179
- Provence-Alpes-Côte d'Azur (ZOU) : 879 à 881, 173 à 174
- Bourgogne-Franche-Comté (Mobigo)
- Bourgogne : 891 à 893, 177 à 178
- Franche-Comté : 894 à 895, 178
(Ce référentiel montre bien que "841" est en Hauts-de-France (NPDC), ce qui corrige l'Img 1, et que "876" est bien Languedoc-Roussillon (liO), ce qui corrige l'Img 2).
3. Application dans getTrainLogoAndMeta
Si l'opérateur brut du GTFS est un terme générique (comme "TER"), la fonction :
- Extraira le numéro à 5 ou 6 chiffres.
- Analysera les 3 premiers chiffres (ex:
844). - Consultera le dictionnaire déterministe EspaceRails.
- Remplacera le
typeLabelet associera le bon logo vialogoLookup.
Cela garantit la fiabilité demandée, supprime l'usage de variables locales "villes", et solutionne définitivement les bugs d'affichage des Images 1 et 2 en s'appuyant sur les préfixes documentés.
Validez-vous l'intégration de cette logique dans src/utils/trainLogoHelper.js ?