IT:OSM XML

From OpenStreetMap Wiki
Jump to: navigation, search
Lingue disponibili — OSM XML
Afrikaans Alemannisch aragonés asturianu azərbaycanca Bahasa Indonesia Bahasa Melayu Bân-lâm-gú Basa Jawa Baso Minangkabau bosanski brezhoneg català čeština dansk Deutsch eesti English español Esperanto estremeñu euskara français Frysk Gaeilge Gàidhlig galego Hausa hrvatski Igbo interlingua Interlingue isiXhosa isiZulu íslenska italiano Kiswahili Kreyòl ayisyen kréyòl gwadloupéyen kurdî latviešu Lëtzebuergesch lietuvių magyar Malagasy Malti Nederlands Nedersaksies norsk norsk nynorsk occitan Oromoo oʻzbekcha/ўзбекча Plattdüütsch polski português português do Brasil română shqip slovenčina slovenščina Soomaaliga suomi svenska Tiếng Việt Türkçe Vahcuengh vèneto Wolof Yorùbá Zazaki српски / srpski беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް

Introduzione

I file .osm sono in formato XML e rappresentano i dati di OpenStreetMap. Sono rappresentati nodi, vie e relazioni (Data Primitives) insieme alle relative etichette (tag). Un file .osm può anche includere dei gruppi di modifiche (changesets).

Il file planet.osm è il più grande, contiene l'intero pianeta Terra (una fotografia di tutti i nodi, le vie, le relazioni della base dati). Esistono anche file .osm per aree più piccole, chiamati estratti. Usando l'API bbox request si ottiene un file in questo formato. Gli estratti di regioni e comuni italiani sono disponibili su http://osm-estratti.wmflabs.org/estratti/

L'editor di mappe JOSM usa l'estensione .osm (formato file JOSM) sia per i dati appena scaricati dal server che per quelli salvati in locale (dati modificati non caricati sul server). Questi ultimi possiedono numeri di identificazione negativi che identificano i nuovi oggetti creati, oltre ai diversi attributi per le azioni come ad esempio action="delete" per gli elementi eliminati.

Esistono diversi modi per scaricare i dati .osm: get .osm data.

Variazioni

Il formato non è mai stato specificato formalmente. Si rende quindi necessaria un'attenta analisi prima di implementare strumenti di decodificazione per questi file.

Ci sono alcune differenze tra i programmi più comuni che creano file .osm:

  • Le API e JOSM usano l'elemento bounds. Osmosis e Planet.osm includono l'elemento bound con due attributi: box="-90,-180,90,180" e origin.
  • L'attributo visible non è incluso in planet.osm e gli altri strumenti lo scrivono solo se è false. Il meglio per testarne l'esistenza è assumere come default true.
  • user e uid potrebbero non essere presenti perchè in passato era possibile nascondere l'identità di chi compiva le modifiche al pubblico. Anche se non è più possibile, questo si potrebbe incontrare in alcuni elementi vecchi o non modificati da tempo.
  • Esiste un attributo opzionale num_changes per i Changesets (E' stato rimosso dallo strumento di esportazione della cronologia delle modifiche per la sua inconsistenza).
  • Ci potrebbero essere più versione di uno stesso elemento in un file .osm e l'ordine degli elementi non è sempre lo stesso.
  • JOSM salva i file nel formato JOSM format, che non include timestamp, version o changeset per gli elementi nuovi. Può essere presente l'attributo action. JOSM include anche l'attributo visible="true" attribute.

Si possono controllare le pagine XSD e DTD per dettagli sui tentativi di definire il formato in questi linguaggi.

Esempio

Questo è un esempio di un file .osm molto semplice. Per altre informazioni sul significato dei diversi elementi XML si veda Data Primitives

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="OpenStreetMap server">
  <bounds minlat="51.5073601795557" minlon="-0.108157396316528" maxlat="51.5076406454029" maxlon="-0.107599496841431"/>
  <node id="319408586" lat="51.5074089" lon="-0.1080108" version="1" changeset="440330" user="smsm1" uid="6871" visible="true" timestamp="2008-12-17T01:18:42Z"/>
  <node id="319408587" lat="51.5074343" lon="-0.1081264" version="1" changeset="440330" user="smsm1" uid="6871" visible="true" timestamp="2008-12-17T01:18:42Z"/>
  <node id="275452090" lat="51.5075933" lon="-0.1076186" version="3" changeset="2980587" user="nickb" uid="1697" visible="true" timestamp="2009-10-29T12:14:35Z">
    <tag k="name" v="Jam's Sandwich Bar"/>
    <tag k="amenity" v="cafe"/>
  </node>
  <node id="304994980" lat="51.5074645" lon="-0.1075735" version="2" changeset="388960" user="BiIbo" uid="3516" visible="true" timestamp="2009-02-13T00:41:47Z">
    <tag k="barrier" v="gate"/>
  </node>
  <node id="304994981" lat="51.5074723" lon="-0.1075014" version="1" changeset="374143" user="Matt" uid="70" visible="true" timestamp="2008-10-16T16:35:57Z"/>
  <node id="304994979" lat="51.507406" lon="-0.1083348" version="4" changeset="2114003" user="jamicu" uid="38244" visible="true" timestamp="2009-08-12T01:33:32Z"/>
  <way id="27776903" visible="true" timestamp="2009-05-31T13:39:15Z" version="3" changeset="1368552" user="Matt" uid="70">
    <nd ref="304994979"/>
    <nd ref="319408587"/>
    <nd ref="319408586"/>
    <nd ref="304994980"/>
    <nd ref="304994981"/>
    <tag k="access" v="private"/>
    <tag k="highway" v="service"/>
  </way>
</osm>

In questo esempio si vedono i dati usciti da questa richiesta: :http://api.openstreetmap.org/api/0.6/map?bbox=-0.108157396316528,51.5073601795557,-0.107599496841431,51.5076406454029