User:Miskellaneous/Howto/Render/Orp

From OpenStreetMap Wiki
Jump to navigation Jump to search

Rendern mit or/p

Vorbereitung

Voraussetzung

  • or/p (Re-Implementierung von Osmarender in der Skriptsprache Perl)
  • Perl-Module:
    • XML::Parser::PerlSAX
    • Set::Object
  • eine Regeldatei (beschreibt welche Features in der Karte dargestellt werden und das Aussehen)


Arbeitsverzeichnis

In diesem Howto wird ein neu angelegtes Arbeitsverzeichnis namens "howtorender" verwenden in das alle benötigten Programme und Dateien abgelegt werden.

or/p

or/p findet man im SVN von OSM. Ist ein SVN-Client vorhanden reicht der Aufruf von

svn checkout "http://svn.openstreetmap.org/applications/rendering/osmarender/orp/"

um sich den "orp" Ordner vom SVN in das aktuelle Arbeitsverzeichnis (howtorender) zu holen.

Bei fehlenden SVN-Client kann man sich or/p, bestehtend aus 9 Dateien, auch über das Webinterface des SVN in einen Ordner herunterladen. Aber spätestens beim Herunterladen der osmarender Stylesheets und SVG-Symbolen in einen späteren Schritt ist der Einfachheit halber ein SVN-Client angebracht.

benötigte Perl-Module

XML::Parser::PerlSAX, XML::Writer und Set::Object können alle bei Debian-basierenden Systemen über apt-get nachinstalliert werden:

$ sudo apt-get install libxml-perl libxml-writer-perl libset-object-perl

sollte ein Modul nicht in der Betriebssystem eigenen Paketverwaltung vorhanden sein, lässt sich das Modul auch (an der Paketverwaltung vorbei) über Perl's CPAN-Modul installieren:

$ sudo perl -MCPAN -e "install XML::Parser::PerlSAX"
$ sudo perl -MCPAN -e "install XML::Writer"
$ sudo perl -MCPAN -e "install Set::Object"

Regeldatei

Die Regeldatei ist eine XML-Datei, die darin enthaltenen Regeln bestimmen welche Features auf der Karte gerendert werden und wie sie dargstellt werden. Da osmarender zum Rendern der Tiles@Home-Kacheln verwendet wird existieren bereits eine Reihe von Stylesheets (für jede Art jeweils für jedes Zoomlevel).

osmarender und die Stylesheets findet man ebenfalls im SVN von OpenStreetMap unter "/applications/rendering/osmarender/", die Stylesheets liegen in einen eigenen Unterordner namens "stylesheets".

Das einfachste Vorgehen ist den gesamten Stylesheets-Ordner über ein SVN-Checkout zu beziehen. Auf diese Weise hat man mit einem Zug auch gleich die in den Stylesheets verwendeten Symbole (SVG-Dateien), die für ein fehlerfreies Rendern erforderlich sind.

Um den "stylesheets"-Ordner in das howtorender Arbeitsverzeichnis zu bekommen, wechselt man in dieses, dann reicht der Aufruf von:

svn checkout "http://svn.openstreetmap.org/applications/rendering/osmarender/stylesheets/"

OSM-Daten

Für dieses Howto holen wir uns die OSM-Daten über den "Export"-Reiter auf der openstreetmap.org-Seite. Dazu sucht man sich den gewünschten Kartenausschnitt und klickt auf den "Export"-Reiter am oberen Seitenende. An der linken Seite öffnet sich das Export-Formular. Im oberen Teil "Area to export" sieht man die 4 Eck-Koordinaten des momentan sichtbaren Kartenausschnitts. Klickt man auf "Manually select a different area" kann man durch das Zeichnen eines Rechtecks in die Karte von Hand festlegen welcher Bereich exportiert werden soll. Nach der Auswahl des zu exportierenden Bereichs wählt man das Dateiformat. Wir sind an den OSM-Rohdaten interessiert, also wählen wir "OpenStreetMap XML Data" und mit einen Klick auf "Export" werden uns die OSM-Daten zum Download angeboten. Die Datei speichert man einfach als "data.osm" im Arbeitsverzeichnis howtorender ab.

Zusammenfassung

  • Arbeitsverzeichnis howtorender anlegen und in das angelegte Verzeichnis wechseln
$ mkdir howtorender
 
$ cd howtorender
  • or/p aus'm SVN ins Arbeitsverzeichnis holen
$ svn checkout "http://svn.openstreetmap.org/applications/rendering/osmarender/orp/"
  • Stylesheets inklusive Symbole ins Arbeitverzeichnis holen
$ svn checkout "http://svn.openstreetmap.org/applications/rendering/osmarender/stylesheets/"
  • OpenStreetMap-Rohdaten holen und als "data.osm" ins Arbeitsverzeichnis ablegen

Das Arbeitsverzeichnis hat nun grob folgende Struktur

>--[ howtorender ]
   |
   +--[ orp ]
   |
   +--[ stylesheets ]
   |  |
   |  +--[ symbols ]
   |  |
   |  +--o osm-map-features-z12.xml
   |  |
   |  +--o osm-map-features-z13.xml
   |  |
   |              ...
   |  |
   |  +--o osm-map-features-z9.xml
   |
   +--o data.osm

Rendern

Ohne weitere Parameter verwendet orp.pl "rule.xml" als Dateinamen für Regeldatei (Stylesheet) und "data.osm" für Datei mit OSM-Rohdaten. Da wir unsere Rohdaten als "data.osm" abgespeichert haben könnten wir den Standardwert belassen, die Dateinamen der Regeldateien haben jedoch einen andere Namen, müssen also in diesen Fall über den -r bzw. --rule Parameter mit angegeben werden. Der Vollständigkeit halber werden im folgenden Beispiel sowohl Regel- als auch Rohdatendatei angegeben.

Letztendlich sieht der Aufruf von orp.pl für das Rendern in Zoomstufe 16 wie folgt aus:

$ perl ./orp/orp.pl -r ./stylesheets/osm-map-features-z16.xml data.osm

Die resultierende SVG-Datei "output.svg" kann über einen Webbrowser und den meisten Grafikprogrammen betrachtet werden. Mit einen SVG-Editor wie Inkscape kann man nachträglich unsaubere Stellen bereinigen bzw. Fehler korrigieren und über die Export-Funktion eine Bitmap-Bilddatei erzeugen (PNG bei Inkscape).