Bonjour,

Depuis quelques temps je developpe un logiciel d analyse de diff OSM.
Une des applications qui m a paru interessante etait de suivre les 
modifications effectuees par d autres contributeurs sur des objets que j ai 
cree ou modifie.
J ai un prototype qui commence a marcher, il n est pas termine et reste assez 
basic pour le moment mais je me suis dit que cela pourrait peut etre interesser 
d autres personnes.
Je le mets donc a disposition en esperant que certains le testeront et me 
donneront leur avis.

Vous devriez trouver en piece jointe de ce mail un exemple de rapport genere 
par l outil.
Il s agit d un fichier HTML indiquant quels objets ont ete modifies et donnant 
des details sur les modifications effectues ( changeset,user):
Node : ajout/suppresion/modifications de tags, deplacement, suppression
Way : ajout/suppresion/modifications de tags, ajout/suppression de node
Relation : ajout/suppresion/modifications de tags, ajout/suppression de membre, 
changement de role d un membre
Chaque objet OSM est accessible via les liens HTML, dans le cas d une 
suppression le lien pointe sur la dernier version avant suppression.

Un parametre permet d indiquer le nom de l utilisateur dont on veut suivre les 
objets. A chaque fois que l utilisateur cree ou modifie un objet celui sera 
marque comme "a surveiller" et stocke en cache. ( il est aussi possible d 
ajouter arbitrairement des objets a surveiller en editant la base de donnee de 
l outil )

Dans le cas d un way tous les nodes qui le composent sont marques, c est aussi 
le cas pour les relations ( cela sera certainement parametrable dans le futur )

A chaque fois qu un objet marque "a surveiller" est modifie l outil va comparer 
la nouvelle version avec la precedente ( si celle-ci n est pas en cache elle 
sera telechargee) et generer le rapport indiquant les differences qu il est 
capable de detecter 


Un fichier de conf XML permet de parametrer l outil ( un exemple est fourni 
dans le package).
library indique l emplacement de la librairie de suivi des objets
analyzer permet de creer un instance du module de suivi d objet. son parametre 
user_name est utilise pour decider des objets a mettre sous suivi
les parametres proxy_authentication permettent de se connecter derriere un proxy
start_policy et start_sequence_number sont utilises pour analyser les diffs de 
l exemple.
Il est possible de configurer l outil pour qu il reparte de la derniere diff 
analysee en configurant start_policy a stored
iteration_number indique a l outil de s arreter apres l analyse de deux 
minutes-diff. Si l on ne precise pas de valeur l outil continuera son execution 
jusqu a ce qu il recoive un signal Control+C auquel cas il s arretera apres 
avoir fini l analyse en cours et stocke son numero de sequence

Pour l instant je n ai fais les tests que sous Linux. A part la gestion du 
signal Control+C il s agit de C++ standard donc cela peut peut etre marcher 
sous MinGW sur Windows

Pour que la compilation fonctionne il faut avoir installe les libs suivantes : 
perl sqlite3 expat curl zlib


Le package est telechargeable ici :
http://thevenon.julien.free.fr/osm_object_watcher/object_watch.tar.gz

Il contient deux repertoires et un README:
repository qui contient le code source de l outil
data qui contient les fichiers de confs et donnees necessaires pour l executer 
et obtenir le rapport d exemple qui se trouve en piece jointe de ce mail
Le README indique la procedure a suivre pour compiler l outil


Au niveau des ameliorations a apporter voici quelques idees en vrac des 
amelioriations que je compte apporter:
+ ajout d alerte quand on modifie un way contenant un node a surveiller ( idem 
pour les relations et leur membres)
+ parametrer si l on souhaite marquer un way avec ses nodes ou pas ( idem pour 
les relations )
+ ajouter des objets a surveiller a partir d un fichier OSM
+ choisir si un objet continue a etre surveille apres modifications ou pas

+ ajouter une interface graphique a l outil


Si vous avez des questions ou suggestions n hesitez pas, mon framework est 
concu pour etre modulaire,le suivi d objets n est qu un des modules sur 
lesquels je developpe

Julien
Title: Geogast object report

Geogast object report

node 274262518 has been modified by user wheelmap_visitor in changeset 13720658
  • Tag "wheelchair" with value "no" has been added

node 293791437 has been modified by user AmiFritz in changeset 13722049
  • Coordinates has changed from (48.0880089,7.4123621) to (48.0880013,7.4123702)

node 1860363981 has been deleted by user Blekota in changeset 13723005

way 26784109 has been modified by user AmiFritz in changeset 13722049

way 26784110 has been modified by user AmiFritz in changeset 13722049

way 187869924 has been modified by user Blekota in changeset 13723005

relation 337767 has been modified by user Fred_OSM in changeset 13723019

relation 1923087 has been modified by user poppei82 in changeset 13723009

_______________________________________________
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr

Répondre à