FR:Format de fichier JOSM

From OpenStreetMap Wiki
Jump to navigation Jump to search

Le format de fichier JOSM est utilisé par JOSM lorsque l'utilisateur sauvegarde et recharge des données dans un fichier. Les fichiers JOSM ont l'extension .osm et leur format ressemble beaucoup aux fichiers d'extraction de la base de données Planet.osm ou au résultat d'une requête bbox depuis le serveur avec juste quelques ajouts mineurs. C'est à la fois un format de stockage et un format de fichier de changements. Ainsi, en plus de pouvoir sauvegarder les données téléchargées depuis le serveur, il permet aussi de sauvegarder les changements apportés par l'utilisateur.

Exemple

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.5' generator='JOSM'>
  <bounds minlat='51.5076478723889' minlon='-0.127989783553507' maxlat='51.5077445145483' maxlon='-0.127774884645096' origin='OpenStreetMap server' />
  <node id='26821100' timestamp='2009-02-16T21:34:57+00:00' user='dankarran' visible='true' lat='51.5077286' lon='-0.1279688'>
    <tag k='created_by' v='Potlatch 0.10f' />
    <tag k='name' v='Nelson&apos;s Column' />
    <tag k='tourism' v='attraction' />
    <tag k='monument' v='statue' />
    <tag k='historic' v='monument' />
  </node>
  <node id='-1' visible='true' lat='51.507661490456606' lon='-0.1278000843634869' />
  <node id='346364767' action='delete' timestamp='2009-02-16T21:34:44+00:00' user='dankarran' visible='true' lat='51.5076698' lon='-0.1278143' />
</osm>

Le format ressemble beaucoup à la réponse venant du serveur, avec quelques petites différences:

  • ajout d'un ou plusieurs tags bound qui montrent les limites du carré téléchargé qui a généré ces données (si connu). Il y a en plus le tag origin qui indique le nom du serveur qui a fourni ces données.
  • Les entités peuvent avoir un tag action qui peut avoir l'une des valeurs suivantes: modify ou delete. Le tag modify indique que l'on remplace la précédente version de cette entité.
  • La création d'un nouvel élément est indiquée par l'utilisation d'un ID négatif. Cet ID négatif sert aussi de paramètre fictif qui peut être utilisé pour référencer des objets dépendants dans un autre endroit du fichier.

Contrairement à d'autres formats de fichiers de changements, les entités sont classées par type plutôt que par l'ordre réel des changements. Le fichier obtenu est cohérent par lui-même, il sera donc toujours possible de réorganiser les changements de telle manière que l'intégrité référentielle soit préservée.