OsmTransport : application de suivi des réseaux de transports publiques
Par René-Luc D'Hont le jeudi 2 juillet 2009, 14:30 - Système d'Information Géographique (SIG) - Lien permanent
OsmTransport est un outil qui permet d'afficher par dessus un fond de carte OpenStreetMap les lignes de transports publiques : métro, bus et tramway.
Les lignes sont extraites des données sources d'OpenStreetMap à partir des relation "routes" (http://wiki.openstreetmap.org/wiki/Relation:route#Public_Transportation) et mises en forme en fonction du type de ligne et de la couleur spécifiée dans la relation route par le tag "color". Il y a pour l'instant une couche de données (un layer) par type de ligne et un par type d'arrêts.
Pour l'affichage du réseau non avons choisi d'utiliser un affichage vectoriel à la différence de Google. Les principaux avantages de l'utilisation de l'affichage vectoriel par rapport à l'utilisation de Mapnik pour afficher ces lignes sont :
- l'utilisation dynamique du tag "color" pour styliser chaque ligne (pas besoin de créer autant de styles que de lignes ce qui nécessaire dans Mapnik). Une ligne dont la route n'a pas de tag "color" est affichée en noir.
- la possibilité d'afficher ou non chacune des couches, si on ne souhaite par exemple que voir les lignes de métro.
- la possibilité d'avoir des informations complémentaires sur un arrêt (ou un ligne) sur clic de l'élément. Pour l'instant, seules des informations sommaires sont données, et seulement sur les arrêts.
L'un des objectifs principal de cet outil est d'aider les contributeurs à visualiser l'avancement des transports publiques par commune. Un autre objectif est de montrer les informations à corriger ou à compléter sur les lignes et les arrêts (Par exemple une ligne noire montre l'absence du tag "color" dans la relation, ou bien on peut comparer les lignes de tramways issues de la relation route=tram avec celles issues du railway=tram)
L'affichage de données vectorielles demande des ressources qui croissent avec le nombre d'éléments à afficher par le navigateur. C'est pouquoi le choix a été fait de créer des zones nommées "locations" pour lesquelles les lignes sont extraites. Ces locations correspondent en fait à des villes. On peut sélectionner une "location" pour zoomer automatiquement sur la zone concernée, et voir les lignes de cette zone (seules les lignes de cette zone sont affichées, pour ne pas surcharger le navigateur).
Si une location n'est pas dans la liste, on peut en créer une en cliquant sur le lien "Add a location" en haut à droite. Il faut au préalable zoomer sur la zone souhaitée. Ensuite, il faut cliquer sur "Draw" puis dessiner un rectangle de la zone voulue, puis ajouter le nom de la zone (utiliser si possible le nom de la ville) puis le pays, et enfin valider avec le bouton "Add". Si tout se passe bien, la page se rafraîchit sans message d'erreur et vous voyez les lignes qui ont déjà été cartographiées. Si vous ne voyez pas de lignes, c'est sûrement parce qu'il n'y a pas de routes correspondantes dans la données d'OpenStreetMap, ou bien que les couches n'ont pas été rafraîchies depuis l'ajout de cette données.
Les données sont mises à jour tous les matins à 6h30 à partir des fichiers tar.gz fournis par Geofabrik ( http://download.geofabrik.de/osm/europe/ ). Pour l'instant, les données ne sont téléchargées et donc disponibles que pour la France métropolitaine.
Un permalink est fourni une fois la "location" choisie et la page raffraîchie. Par exemple pour la ville de Montpellier : http://3liz.fr/public/osmtransport/index.php?location=Montpellier&BtChooseLocation=Ok
Cette version étant la toute première et que nous souhaitons respecter l'adage :"Release often release early", certains bugs sont déjà connus :
- une fois le bouton "Draw" cliqué, parfois le rectangle ne se dessine par où on le souhaite.
- la couche des arrêts de métro affiche aussi toutes les stations de train. Pour l'instant, nous n'avons pas trouvé le moyen avec osm2pgsql de trouver les points de type "bus_stop" ou "railway=station" qui appartiennent respectivement à une route de type "route=bus" ou "route=tram".
- la pop-up sur clic d'un arrêt ne fonctionne que pour la couche visible la plus au dessus (la plus en bas dans le switcher OpenLayers). Ce bug va être corrigé grâce à l'utilisation de la nouvelle fonctionnalité implémentée dans la dernière version d'OpenLayers (2.8).
Découvrez, créez et participez à la création de données libres de réseaux publiques : http://3liz.fr/public/osmtransport/