URL: https://linuxfr.org/users/blepers/journaux/isochrones-de-transports-en-commun Title: Isochrones de transports en commun Authors: BLepers Date: 2023年06月18日T21:19:36+02:00 License: CC By-SA Tags: transport_en_commun, sig, gtfs et sncf Score: 53 Où aller en train ou en bus en moins de 2h ? En moins de 5h ? En moins de 10h ? C'est l'objectif de ce projet : afficher tout ça de manière jolie sur une carte. Démo et explications ! - Demo : http://isochrones.envadrouille.org/ - Code : https://github.com/BLepers/isochrones-gtfs Quelques images motivantes =========== _Isochrones de transport depuis Berne :_ ![Isochrones depuis Bern](http://en-vadrouille.net/envadrouille.org/isochrones/iso12.png) _Zoom et affichage des stations de bus :_ ![Isochrones depuis Bern](http://en-vadrouille.net/envadrouille.org/isochrones/iso13.png) _Joli patchwork de stations en Allemagne :_ ![Isochrones depuis Bern](http://en-vadrouille.net/envadrouille.org/isochrones/iso07.png) _On peut aussi intégrer la carte au projet [EnVadrouille](http://envadrouille.org/) que j'avais présenté il y a [5 ans](https://linuxfr.org/users/blepers/journaux/envadrouille-une-galerie-photo-pour-vos-randos-5-ans-apres) et même déjà [10 ans](https://linuxfr.org/users/blepers/journaux/envadrouille-une-galerie-photo-pour-vos-randos) sur ce site (ça ne nous rajeunit pas tout ça). En bleu les randonnées et tours de vélo que j'ai faits ces dernières années, en coloré les temps de transport. Tiens, faudrait que je randonne plus entre Berne et Lucerne, c'est pas loin en train !_ ![Isochrones depuis Bern](http://en-vadrouille.net/envadrouille.org/isochrones/iso15.png) Comment ça marche ? =========== Le projet se base sur plusieurs jeux de données : - Les fichiers [GTFS](https://en.wikipedia.org/wiki/GTFS) fournis par les différentes compagnies de train/bus. Ces fichiers contiennent les horaires. - [Openstreetmap](https://www.openstreetmap.org) pour retrouver le tracé des lignes de chemin de fer. - Et enfin [MapBox](https://www.mapbox.com/) pour le rendu des cartes. Grosso modo, depuis les fichiers GTFS, je calcule le temps de trajet entre une station (e.g., Neuchâtel) et le reste du monde. La base est un algorithme de plus court chemin (SSSP - single source shortest path), mais en plus compliqué parce que je dois gérer les contraintes des transports en commun -- par exemple, on ne peut pas prendre un train qui part à 9h si l'on ne peut pas arriver à la station avant 10h... Il faut aussi prendre en compte les temps d'attente entre trains, le fait que l'on doive marcher entre les plateformes d'une gare (= on ne peut pas passer instantanément d'un train à l'autre, même dans une même gare !), et le fait que l'on puisse marcher entre une gare et tous les arrêts de bus proches. Bref, un joli casse-tête. Pourquoi ne pas calculer les plus courts chemins en utilisant une API SNCF ou Bahn.de ? Parce que rien qu'en France, Suisse et Allemagne il y a plus d'un million d'arrêts de train et de bus ! (Si, si !) Autant dire que les APIs m'auraient banni bien avant d'avoir collecté toutes les infos... Une fois les plus courts chemins déterminés, j'interroge un Openstreetmap local pour trouver le tracé des lignes de chemin de fer. Ca me donne des geojson. On mélange tout ça, et on a des geojson enrichis de temps de trajet. Il ne reste plus qu'à afficher tout ça sur [une carte](http://isochrones.envadrouille.org/) et voilà ! Contribuez ! =========== Je n'ai pas trouvé les fichiers GTFS des équivalents de TGV en Italie pour Italo. Si vous avez le jeu de données, je suis preneur ! Idem pour Trenitalia, pas sûr d'avoir les bonnes données. Le projet GitHub explique comment générer des fonds de carte. Si vous voulez une ville en particulier, je peux aussi l'ajouter. Vous pouvez aussi tenter de faire tourner le projet. Normalement c'est bien documenté, mais ça prend un peu de temps (il faut récupérer tous les jeux de données).

AltStyle によって変換されたページ (->オリジナル) /