[OSM-dev-fr] Précisions à propos du format XML OSMChange

Pierre Béland pierzenh at yahoo.fr
Dim 22 Déc 20:03:39 UTC 2013


François,

Les id négatifs, c'est le traitement effectué par JOSM par exemple avant que les données soient traitées par OSM. Ce qui nous intéresse, c'est le résultat une fois la transaction digérée par OSM.

Une bonne façon de visualiser comment le tout est traité après avoir envoyé des transactions à la base OSM, c'est soit de sauvegarder le fichier osm où de regarder le fichier OSMChange. Il n'y aura plus de ID négatif, puisque le système OSM aura traité l'objet et y aura attribué un id permanent.

Si j'ajoute un noeud à un chemin, je fais implicitement deux opérations  :
1. creer un noeud
2. modifier le chemin pour y ajouter la référence au noeud.
Un chemin est un vecteur orienté référencé par une série de noeuds. L'ordre de ses noeauds indique évidemment la progression de ce chemin dans une direction donnée. Et le système enregistre dans l'ordre la série de noeuds décrivant le chemin. Si j'ajoute le noeud au milieu du chemin, la référence aux noeuds de ce chemin sera révisée en conséquence en y placant le noeud au bon endroit.


De même si je créé un objet et l'ajoute comme composante d'une relation, j'aurai implicitement deux opérations : 


1. creer un objet
2. modifier la relation pour y ajouter la référence à cet objet et lui attribuer un rôle.


 
Pierre 



________________________________
 De : François Lacombe <francois.lacombe at telecom-bretagne.eu>
À : Pierre Béland <pierzenh at yahoo.fr>; Discussions développeur OSM en français <dev-fr at openstreetmap.org> 
Envoyé le : Dimanche 22 décembre 2013 14h41
Objet : Re: [OSM-dev-fr] Précisions à propos du format XML OSMChange
 


Merci Pierre pour cette réponse.


Le 22 décembre 2013 20:26, Pierre Béland <pierzenh at yahoo.fr> a écrit :

François,
>
>Voici une partie des réponses. Je vais laisser à d'autres traiter des relations.
>
>À partir de l'historique de openstreetmap.org, si nous regardons l'historique d'un changeset particulier, il nous est offert de voir l'historique au format osmchange. Et effectivement, il est donc possible de voir toutes les transactions effectuées dans la base OSM avec ce changeset.
>
>Voir par exemple http://www.openstreetmap.org/api/0.6/changeset/19585655/download, où on voit clairement des objets
>
>- créés  <create>  le id n'est pas négatif, mais correspond plutôt à celui attribué lors de la sauvegarde
>- modifiés <modify> et effectivement avec un no. de version plus grand que 1, correspondant à celui attribué lors de la sauvegarde
>-
 effacés <delete>
>

Je n'ai pas pensé à faire un appel download pour me rendre compte, c'est très instructif.


Je n'avais pas pris au sérieux la mention "in fact, all id attributes in create elements are treated as placeholders whether negative or not." mais il y a bien plusieurs create, modify ou delete.


 
Un noeud déplacé ne change pas d'id. C'est la géométrie qui change (ie. lat et lon).
>

Ah oui ça c'est une chose qui m'avait échappé, on a des identifiants logiques plus que des numéros d'enregistrement.

Ça résout une bonne partie des cas auxquels j'avais pensé.


Néanmoins, qu'est-ce qui m'assure que si plusieurs nœuds et une voies sont créés, la voie sera après la liste de tous les nœuds ? Pour ne pas la digérer avec des références vers les nœuds négatives.


Dans les autres cas, create sera traité avant modify. Si la voie existe et qu'on lui ajoute un nœud, elle sera forcément traitée après le nœud donc avec la bonne référence.





François Lacombe

francois dot lacombe At telecom-bretagne dot eu
http://www.infos-reseaux.com
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/dev-fr/attachments/20131222/f1c214ef/attachment-0001.html>


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