Re: Digitale Kartografie, GPX-track und QGIS, usw

von: Axurit

Re: Digitale Kartografie, GPX-track und QGIS, usw - 26.05.16 10:40

Hallo Christian,

dein Projekt lässt sich in drei Stufen aufteilen: 1) Zusammenstellen der Daten in geeigneter Form, 2) Erzeugen des Kartenbilds ("Rendern") und 3) Anzeige der Karte.

zu 1): Wenn du wirklich abhängig von der Entfernung zum Track unterschiedlich rendern willst (worin ich wie andere keinen rechten Sinn sehe), dann geht das am einfachsten, wenn die Daten in einer Geodatenbank hältst, also entweder in PostgreSQL/PostGIS oder SQLite/SpatiaLite. Der Vorteil einer solchen Datenbank ist, dass man die Objekte anhand ihrer geografischen Position und Ausdehnung sowie ihrer räumlichen Beziehungen zueinander selektieren kann. Wenn sowohl die OSM-Daten als auch der Track in einer Geodatenbank abgelegt sind, dann kann man sich beim Rendern auf relativ einfache Weise alle Objekte ausgeben lassen, deren Entfernung vom Track einen bestimmten Wert überschreitet.

Die OSM-Daten in eine PostGIS-Datenbank bekommt man mit osm2pgsql, in eine SpatiaLite-DB mit ogm2ogr, bei QGIS mit der integrierten OSM-Import-Funktion. Um den GPX-Track in die DB zu importieren, findet sich sicher auch eine Lösung, notfalls auf dem Umweg über das OSM-Format.

zu 2): Zum Rendern von Karten auf OSM-Basis gibt es im wesentlichen drei Tools: Maperitive, Mapnik und QGis.

Maperitive hat den großen Vorteil, dass es eine integrierte Entwicklungsumgebung enthält. Der Nachteil ist, dass es weder PostGis noch SpatiaLite unter stützt.

Mapnik unterstützt PostGIS, bei SpatiaLite bin ich mir nicht sicher. Der Knackpunkt bei Mapnik ist aus meiner Sicht die XML-Beschreibungssprache. Die XML-Datei von Hand zu erstellen ist eine echte Sisyphosarbeit. Einfacher geht es mit CartoCss, einer CSS-ähnlichen Beschreibungssprache. Für CartoCss gibt es ein Kommandozeilentool, welches eine CartoCss-Datei in eine Mapnik-XML-Datei umwandelt. Es gibt auch grafische Entwicklungsumgebungen, bei denen Änderungen quasi in Echtzeit gerendert werden. Tilemill war lange Zeit die Standardentwicklungsumgebung für CartoCss, wird aber leider nicht mehr aktiv weiter entwickwelt. Ich habe es auch unter Linux irgendwann nicht mehr zum Laufen bekommen (node.js grrr...). Kosmtik ist eine Entwicklungsumgebung für Cartocss, die im Browser läuft (mit lokalem Server im Hintergrund). Frisst leider eine Menge RAM. Ich habe mir daher eine eigene Umgebung gebastelt auf der Basis von Tilestache.

QGIS kann m.W. PostGis und SpatiaLite verarbeiten.

Mit Maperitive und Mapnik kann man sowohl einzelne Kartenausschnitte als Grafik erzeugen als auch Kacheln für eine interaktive Karte. Ob QGIS auch zum Erzeigen von Kacheln geeignet ist, weiß ich nicht. Einen Vorteil von QGis sehe ich allerdings darin, dass man Daten aus vielen verschiedenartigen Quellen verwenden kann und somit auch eigene Objekte von Hand oder aus einer CSV-Datei hinzufügen kann.

zu 3): Leaflet ist sicher eine gute Wahl für deine Anwendung. Ich nutze selbst OpenLayers, das ist aus meiner Sicht mächtiger aber auch komplexer zu handhaben.

Grüße
Rainer