DE:OSM XML

From OpenStreetMap Wiki
Jump to: navigation, search
Verfügbare Sprachen — 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 беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް

Eine .osm-Datei enthält die OpenStreetMap-Daten (die Grundelemente nodes, ways und relations sowie deren tags) im XML-Format. Die Änderungsätze können ebenfalls enthalten sein.

planet.osm ist die bekannteste osm-Datei. Sie enthält alle vorhandenen Daten und beschreibt somit die komplette Erde. Kleinere Auszüge (extracts) der Datenbank werden von verschiedenen Anbietern ebenfalls in diesem Datenformat zur Verfügung gestellt. Auch ein Aufruf über die API liefert die Daten im osm-Format.

Varianten

Da das Format nie wirklich festgelegt wurde, muss man aufpassen, wenn man die Daten von nicht bekannten Quellen auslesen möchte.

Die folgende Auflistung zeigt die Unterschiede der .osm-Dateien, die die verschiedenen Programme verwenden:

  • API und JOSM verwenden das Element bounds, Osmosis und planet.osm das Element bound mit den 2 Attributen box="-90,-180,90,180" und origin
  • Das Attribut visible wird von planet.osm nicht verwendet und die anderen Programme schreiben es nur wenn es auf false gesetzt ist. Am Besten prüft man, ob es vorhanden ist und nimmt als Standard den Wert true an.
  • user und uid können fehlen, da es früher möglich war, anonyme Bearbeitungen durchzuführen. Mittlerweile ist dies nicht mehr erlaubt, es können jedoch noch immer Objekte ohne diese Attribute vorhanden sein (vor allem bei alten Objekten, die schon lange nicht mehr verändert wurden).
  • Es gibt das optionale Attribut num_changes für Änderungssätze, aufgrund von Unbeständigkeiten wird es jedoch nicht verwendet.
  • Es ist möglich, dass ein Objekt in verschiedenen Versionen vorkommt und auch die Reihenfolge ist nicht immer gleich.
  • JOSM verwendet ein abgewandeltes Format, dass für neue Objekte eine negative ID-Nummer festlegt und denen die Attribute timestamp, version or changeset fehlen. Es kann jedoch ein action Attribut vorhanden sein. Ausserdem verwendet JOSM visible="true".

Beispiel

Das folgende Beispiel zeigt eine einfach .osm Datei. Nähere Informationen über die einzelnen XML-Elemente findet man auf der Seite 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>

Das obige Beispiel entstand durch den API-Aufruf

http://api.openstreetmap.org/api/0.6/map?bbox=-0.108157396316528,51.5073601795557,-0.107599496841431,51.5076406454029

.osm-Dateien verarbeiten

Es gibt verschiedene Programme für die Bearbeitung von .osm-Dateien, wobei Osmosis das bekannteste ist.