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.laco...@telecom-bretagne.eu>
À : Pierre Béland <pierz...@yahoo.fr>; Discussions développeur OSM en français 
<dev-fr@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 <pierz...@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
_______________________________________________
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr

Répondre à