[OSM-talk-fr] [dev] OsmWatch : outil pour voir les modifications/ajouts/suprression d'un ensemble d'objets

Benoît ROUSSEAU adressepossible at free.fr
Jeu 22 Avr 19:03:23 UTC 2010


kimaidou a écrit :
> 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
>
Je bosse entre autre sur des fonctionnalités similaires avec pour 
objectif final une bibliothèque d'accès C# aux api OSM qui . L'idée pour 
moi est avant tout de suivre les coins que je cartographie et de 
visualiser graphiquement les zones éditées depuis mes derniers ajouts.
Je suis prêt à mutualiser idées, extraits de sources (sont caca pour 
l'instant), speudo code, algorithmes, ...

Benoît R.




Plus d'informations sur la liste de diffusion Talk-fr