DE:Shape file export mit osmlib

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

Nachdem Shape-Files in der GIS-Welt von Windows einen Quasi-Standard darstellen, wird hier die Erzeugung von Shape Files aus OSM-Daten unter Windows beschrieben. Eine Anleitung für Ubuntu Linux siehe Convert_osm2shp_using_OSMLibrary_on_Ubuntu (in Englisch). Für den Export wird die OSM Library oder kurz "osmlib" von Jochen Topf verwendet.

Installation Ruby

Zuerst braucht man Ruby. Für Windows am einfachsten über die Download-Seite von Ruby.org zu beziehen. Netterweise gibt es einen "One-Click-Installer" für Windows. Nachdem man also das Installationspaket heruntergeladen hat, führt man die Datei aus - es folgt eine gewöhnliche Windows-Installationsroutine.

Installation OSMLib

Nun öffnet man ein DOS-Fenster und begibt sich in den Ordner

C:\Programme\ruby\bin

um mittels des Tools gem die Installation der osmlib vorzunehmen. Gem ist der "Paketmanager" von Ruby, mit dem sich sehr einfach fehlende Pakete, Libraries etc (im Ruby-Speak also "Gems") nachinstallieren lassen.

Als erstes wird osmlib-base installiert:

C:\Programme\ruby\bin>gem install osmlib-base
Bulk updating Gem source index for: http://gems.rubyforge.org 
Successfully installed osmlib-base-0.1.4
Installing ri documentation for osmlib-base-0.1.4...
Installing RDoc documentation for osmlib-base-0.1.4...


Nun folgt osmlib-export:

C:\Programme\ruby\bin>gem install osmlib-export
Successfully installed osmlib-export-0.1.4
Installing ri documentation for osmlib-export-0.1.4...
Installing RDoc documentation for osmlib-export-0.1.4...

... und zusätzlich die Bibliothek "GeoRuby":

C:\Programme\ruby\bin>gem install GeoRuby
Successfully installed GeoRuby-1.3.4
Installing ri documentation for GeoRuby-1.3.4...
Installing RDoc documentation for GeoRuby-1.3.4...

Nun ist prinzipiell schon alles fertig, aber:

Osmlib kann verschiedene XML-Parser verwenden. Voreingestellt ist REXML, der mit Ruby mitgeliefert wird. LibXML ist allerdings wesentlich schneller (bei meinen Tests ~ 5x). Deshalb empfiehlt sich noch die Installation der LibXML. Diese Library kann man sich nicht mittels gem installieren, sonder man holt sich ein vorkompiliertes Paket von Moves on Rails - ein ZIP-File mit dem Inhalt:

libxmlrelease\bin\libiconv-2.dll
libxmlrelease\bin\libxml2-2.dll 
libxmlrelease\lib\ruby\site_ruby\1.8\i386-msvcrt\xml\libxml_so.so
libxmlrelease\lib\ruby\site_ruby\1.8\xml\libxml.rb

(insgesamt also 4 Dateien). Diese werden in die passenden Verzeichnisse kopiert - das Verzeichnis "libxmlrelease" wird duch das root-Verzeichnis der Ruby-Installation ersetzt ("C:\Programme\ruby\"), also

libiconv-2.dll -> C:\Programme\ruby\bin usw.

Welcher Parser von osmlib benutzt wird, entscheidet der Inhalt der Umgebungsvariable

OSMLIB_XML_PARSER

Man erzeugt also mittels

set OSMLIB_XML_PARSER=Libxml

im DOS-Fenster diese Variable - und startet neu, damit die Variable wirksam wird. Alternativ kann man die Variable natürlich auch über

Start -> Einstellungen -> Systemsteuerung -> System -> Reiter "Erweitert"

und den Button "Umgebungsvariablen" erzeugen. Einfach eine neue Benutzervariable mit dem Namem "OSMLIB_XML_PARSER " und Wert "Libxml" erzeugen. Damit ist die Installation auch schon abgeschlossen.

Arbeiten mit osmlib-export

Dreh- und Angelpunkt ist das Skript

osmexport

das in

C:\Programme\ruby\lib\ruby\gems\1.8\gems\osmlib-export-0.1.3\bin>

zu finden ist. Grundsätzlich arbeitet der Shape-File-Export immer nach dem Schema

osmexport RULEFILE.oxr OSMFILE.osm OUTDIR

Man braucht für die ersten Versuche also:

  • ein .osm-File. Am besten ein nicht zu großes, da das Parsen der XML-Files doch ein bisschen zeitaufwendig sein kann.
  • einen Outputordner. Ein Shape file besteht ja immer aus mehreren Dateien, die dann im OUTDIR erzeugt werden.

weitere Infos unter http://wiki.openstreetmap.org/wiki/DE:Datenexport_mit_OSMExport