Bonjour, Je suis en train de développer un petit outil en python qui permette sans installation complexe de faire du suivi rapide de l'évolution des objets dans la bdd OSM sur une ou plusieurs zones. Je l'ai appelé "OsmWatch"
Pour l'instant, c'est encore un embryon, mais les fonctionnalités basiques sont à peu près en place, et donc j'en parle ici pour qu'on ne soit pas plusieurs à faire un outil équivalent dans notre coin, mais pour rassembler les bonnes volontés. Je souhaitais attendre un peu, mais Germaine de Marseille a accéléré les choses... Objectif: ********* Cet outil va permettre de suivre l'évolution d'objets OSM via le : * Choix d'une ou plusieurs zones (bbox) La taille de chaque bbox doit rester pas trop grande (limites de l'api et de la xapi, cf description technique + loin) * Choix du suivi des objets. L'outil doit permettre de suivre des groupes d'objets caractérisés par : - une liste d'osm_id fixe - une valeur pour un tag, par exemple toutes les boulangeries shop=bakery. - un utilisateur : soit tous les objets dernièrement édité par l'utilisateur X, soit (plus lourd) tous les objets qui ont une fois été édités par X On peut avoir plusieurs listes, donc suivre par exemple tous les objets "boulangerie" et tous les supermarchés, tous les objets édités par Bob et par Germaine sur la ou les zones. Fonctionnement *********** L'objet de cet outil n'est pas de stocker tout l'historique de chaque objet à chaque passage, ni de proposer des outils statistiques de folie, ni d'éditeur carto, etc. J'ai décidé plutôt de faire un outil simple, qui fonctionne par passe. Lorsqu'on le lance, * il va chercher via l'api et la xapi les objets par rapports aux critères rentrés (utilisateur, tags, etc.) * il compare cette liste d'objet à celle obtenue lors de la dernière passe * Il fait un rapport html avec les différences : objets modifiés, supprimés, ajoutés depuis la dernière fois. * il écrase les données stockées par les nouvelles (qui seront comparées lors de la prochaine passe). Technologie ********** Pour l'instant, ce n'est qu'un petit et moche fichier python, qu'il faudra que j'organise mieux. Il est basé sur la pythonOsmApi ( http://wiki.openstreetmap.org/wiki/PythonOsmApi , merci à l'auteur !) , mais utilise aussi la XAPI pour ses capacités de recherche avancée. Les données de chaque passe sont enregistrées dans une base sqlite, pour que l'outil soit portable. Je cherche ici à faire un outil léger et portable, qu'on puisse lancer d'une simple clé USB. Pour l'instant, l'outil fait juste un "rapport" au format HTML avec des codes couleurs pour dire "supprimé", "modifié", ajouté et avec des liens vers la dscription de l'objet dans OSM. Pour l'instant, l'outil suit seulement les nodes, mais bien sûr je vais étendre à tous les objets (je teste d'abord) Idées d'utilisation ********* * Je suis une commune, j'ai "donné" 550 poins de bancs publics à OSM, je veux pouvoir les suivre, mais aussi voir si d'autres sont ajoutés par des utilisateurs * Je veux voir les modifications faites sur les objets que j'ai édités précédemment * Je savoir quand quelqu'un ajoute des écoles dans ma zone * etc. Je ne cherche pas ici à faire un outil qui permette d'éditer directement la bdd OSM (par exemple : "Tiens, Germaine a supprimé mon arrêt de bus, hop, je clique et il est recréé !" ). Je préfère que la personne soit prévenue, et ensuite qu'elle utilise les outils d'OSM manuellement. Idées futures ********* * lancé l'outil périodiquement sur un serveur * faire une interface graphique * envoyer un email etc. Voilà pour la description générale. Les étapes : * j'améliore un peu le code, je le nettoie et l'organise * je crréé un projet OpenSource sur une forge quelconque * tout le monde peut l'améliorer, le faire avancer, etc. Kimaidou
_______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr