🚇 Metro Travel

2024-04-08

Plus d'une semaine sans avoir travaillé sur ce projet, c'est dur de savoir où je m'en suis arrêté.

J'ai l'impression qu'il me reste plus qu'à enregistrer les données dans un fichier. Une fois fait, je me demande si je ne pourrais pas retirer les paths dans les routes. En réalité, j'enregistre déjà les paths dans les stations adjacentes, donc je n'en ai pas besoin.

D'ailleurs, l'export se fait en moins de 40 secondes, c'est plutôt OK, sachant que j'ai besoin de le faire uniquement quand il y a de nouvelles stations de métro, ou lignes. Comparons la taille des données, avant, nous avions 831+365 Ko, avec le GTFS, j'obtiens un JSON de 931Ko, alors que j'ai des informations en plus.

Maintenant, il faut utiliser ces nouvelles données. Pour ça, il faut modifier plusieurs choses :

  • Le calcul du plus court chemin
  • L'affichage des stations
  • L'affichage des chemins entre les stations

Rien d'insurmontable, mais Eat The Frog, je vais commencer par le plus dur, le calcul du plus court chemin.

Je vais donc modifier les signatures des fonctions, actuellement la fonction computeShortestPath prend en paramètre le nom des stations, je vais plutôt lui passer les unique_id. Il manque l' unique_id dans les stops, je vais ainsi le rajouter d'abord.

Ah voilà, qui est intéressant, les noms entre les stations généralisées et les stations du GTFS ne sont pas les mêmes, comme :

  • GTFS : Michel-Ange - Molitor / Généralisée : Michel-Ange-Molitor
  • GTFS : Pointe du Lac / Généralisée : Créteil - Pointe du Lac

C'est un peu embêtant, mais je vais faire avec. Je vais donc faire une regex pour supprimer espaces et tirets, et voir si c'est inclut.

Ce n'est pas suffisant, il y a aussi les accents comme :

  • GTFS : Cour Saint-Emilion / Généralisée : Cour Saint-Émilion

Je vais récupérer le code du champ de recherche. Il y a aussi le problème d'un nom plus court dans les données généralisées :

  • GTFS : Javel - André Citroën / Généralisée : Javel

Puis, j'ai un souci avec les Champs-Élysées, qui ont un tiret différent :

  • GTFS : Champs-Élysées - Clemenceau / Généralisée : Champs-Élysées – Clemenceau

Et maintenant où le problème vient de l'apostrophe :

  • GTFS : Créteil - L'Échat / Généralisée : Créteil–L’Échat

J'ai à mon avis une dernière erreur, la station Barbara ne remonte pas, je vais regarder pourquoi. Elle a bien le mode METRO, mais la colonne metro est à 0 au lieu de 1. Je préviens IDFM sur leur Slack.

J'ai corrigé le souci en attendant. Revenons, à la création du graph, ce qui est embêtant, c'est que je n'ai pas les unique_id dans les adjacentStations. Le fait de ne pas les avoir m'oblige à fournir les stations, je ne suis pas vraiment sûr de l'utilité, je vais les ajouter directement aux adjacentStations.

J'ai modifié le Dijkstra pour prendre en compte le nouveau format de données, et réussir à faire quelque chose avec les unique_id vs les stop_ids en général, mais je n'ai pas réussi à faire ce que je voulais. Je me suis arrêté là.