Pierre, Philippe,

Si je me pose toutes ces questions, c'est pour reproduire l'API d'OSM et
utiliser JOSM sur mon système.
Je ne peux pas installer le bundle OSM directement en raison du couplage
fort avec mon ORM et ma structure de données qui diffère d'OSM.
J'aurais l'occasion d'en dire plus prochainement, si l'opération intéresse
d'autres contributeurs.

Du coup, je peux tout a fait avoir à traiter des fichiers avec des id
négatifs et devoir les créer dans ma base de la même façon que sur l'API.

L'ordre fourni par Philippe est tout à fait ce qu'il me fallait, on va user
un peu d'XPath pour y arriver.
Je n'envisageais pas l'ordre interne aux opération create et delete, la
solution est maintenant là.


Pour les références cycliques, je m'en remets au bon dieu et à la qualité
de JOSM et des autres outils qui seraient amené à utiliser l'API.

Merci pour vos indications.
Affaire à suivre pour la montée en charge.


*François Lacombe*

francois dot lacombe At telecom-bretagne dot eu
http://www.infos-reseaux.com


Le 22 décembre 2013 21:03, Pierre Béland <pierz...@yahoo.fr> a écrit :

> 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 à