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

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