By Gerhard Schwanz
Date: Thursday, 20 October 2011 10:45
Duration: 20 minutes
Language: Deutsch
Tags: map renderer svg xml

You can find more information on the speaker's site:


Mapweaver

Mapweaver[1] ist ein Programm zur Erstellung von geografischen Karten zum Zecke des Ausdruckens oder Betrachtens. Basierend auf XML-Exporten des Openstreetmap-Projektes werden Karten zunächst im SVG-Format erstellt.

Die Steuerung erfolgt entweder über Kommandozeilenparameter, Konfigurations- oder Style-Dateien. Wahlweise auch kombiniert oder kaskadiert. Es ist also uneingeschränkt Batch-fähig und verfügt über keinerlei GUI.

Die Eingangsdaten können hierzu in verschiedenen Formaten gelesen werden. Ebenso ist es möglich, die Ausgabedaten in andere Formate, z.B. PNG oder PDF zu konvertieren. Zusätzliche Dokumente wie Points of Interest Listen oder Straßenlisten können erzeugt und mittels Latex ansprechend aufbereitet werden.

Zu Beginn des Programms wird ggf. ein Pre-Processing der OSM Daten angestoßen. Hierzu wird das externe Programm OSMOSIS verwendet. Neben den OSM-Daten werden auch Erstellungs-Regeln und die Konfigurationsdatei gelesen.

Während des Karten-Renderns werden sequentiell die verschiedenen Objekte verarbeitet: Knoten, Wege, Flächen und Routen. Die gewonnenen Daten werden zwischengespeichert und später in die verschiedenen Gruppen der Ziel-Datei (SVG) einsortiert. Parallel werden Daten für Verzeichnisse gesammelt.

Bei den Objekten ist die Platzierung von Labels eine besondere Herausforderung. Hierzu ist der Platz auf der Karte geeignet zu verwalten, sodass sich die Labels idealerweise nicht überschneiden.

Die Karten können mit eigenen Elementen angereichert werden, z.B: Legende, Maßstab, Titel etc. Diese Elemente können noch formatiert und platziert werden.

Neben eigenem PERL-Code werden Programme wie OSMOSIS, Inkscape und Latex verwendet. An Modulen werden unter anderem Math::Polygon, Geo::Proj4, QuadTree und Getopt::Long eingesetzt.

PERL ist insofern gut für dieses Projekt geeignet, weil es passende Datenstrukturen und z.B. reguläre Ausdrücke bereitstellt, weil man Code in Module ausgliedern und auf viele fertige Entwicklungen in CPAN zugreifen kann.

[1] http://wiki.openstreetmap.org/wiki/Mapweaver

Gerhard Schwanz (gerhardschwanz@yahoo.de)

Attended by: