Files
ferrovia-infogare/plan_implementation_ter.md
AdminGit c30a0e9002 PATCH v1.0.1 //
-> Amélioration de la mise en relation des TYPES DE TRAINS PAR CODE DE CIRCULATION (BETA)
2026-10-07 01:10:54 +02:00

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

  1. La série 84xxxx englobe les trains des Hauts-de-France (ex: 841xxx, 844947 sur Dunkerque/Valenciennes). C'est ce qui cause l'affichage "MOBIGO" en erreur sur l'Image 1.
  2. 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: detectRegionByRouteScore qui 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 :

  1. Extraira le numéro à 5 ou 6 chiffres.
  2. Analysera les 3 premiers chiffres (ex: 844).
  3. Consultera le dictionnaire déterministe EspaceRails.
  4. Remplacera le typeLabel et associera le bon logo via logoLookup.

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 ?