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 · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · 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 bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · 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