Es gibt eine Reihe von Tools und Online-Diensten, mit denen man GPX-Tracks auf einer OpenStreetMap-Karte anzeigen kann: QLandkarteGT, GpsPrune, gpsies.com,... Beim Ausdrucken bzw. Erzeugen einer Vektorgrafik stößt man allerdings schnell an Grenzen. Die Darstellung der Tracks (Farbe, Breite, Transparenz) ist nicht konfigurierbar und der Zoomlevel wird anhand des Kartenausschnitts gewählt, usw.
Dieses Video hat mir einen Weg zur Lösung aufgezeigt: Quantum GIS (QGIS) mit OpenLayers-Plugin.
OpenLayers-Plugin
Installation
Das
OpenLayers-Plugin ermöglicht es, OSM-Kacheln und Kacheln aus anderen mit OpenLayers darstellbaren Quellen (Google, Bing) in einem QGIS-Layer anzuzeigen. Dazu muss zunächst das Plugin installiert werden. Bis
QGIS 1.8 funktioniert das problemlos mit mit dem Plugin Installer. Zunächst muss im Menü "Erweiterungen" der Plugin Installer installiert werden, dann kann mit diesem das OpenLayers-Plugin installiert werden.
QGIS 1.9/2.0 ist mit dem Plugin nicht kompatibel. Es existiert aber ein Workaround, der hier beschrieben ist: [node:254].
Layer hinzufügen
Danach erscheint im Menü "Erweiterungen" ein Untermenu "Openlayers Plugin", über das eine Kachelquelle ausgewählt und mit einem Layer verknüpft werden kann.
Die Kacheln werden entsprechend dem Zoomlevel geschrumpft bzw, gedehnt, was zu einer unscharfen Darstellung führt. Ein Workaround besteht darin, den Maßstab explizit so einzustellen, dass die Kacheln in Original-Auflösung angezeigt werden. Stellt man den Maßstab 1:2257 ein, erhält man die Kacheln des Zoomlevels 18. Durch Zoomen mit der Maus bekommt man dann die Kacheln in den OSM-Zoomleveln angezeigt.
Weitere Kachelquelle hinzufügen
Eine zusätzliche Kachequelle kann auf einfache Weise Hinzugefügt werden. Im Verzeichnis
~/.qgis2/python/plugins/openlayers_plugin/html
existiert für jede Kachelquelle eine HTML-Datei, die den Javascript-Code enthält, mit dem der entsprechende OpenLayers-Layer erzeugt wird. Man erstellt nun eine Kopie einer dieser Dateien und passt den Code entsprechend an. Für OSM-kompatible Kachelquellen genügt es in der Regel, die Datei osm.html zu kopieren und den URL anzupassen.
Anschließend muss noch in
~/.qgis2/python/plugins/openlayers_plugin/openlayers_plugin.py
, etwa bei Zeile 120, ein Eintrag für die neue Kachelquelle nach diesem Muster eingefügt werden:
self.olLayerTypeRegistry.add( OlLayerType(self, 'OpenStreetMap', 'osm_icon.png', 'osm.html', True) )
nach einem Neustart von QGIS ist die neue Kachelquelle verfügbar.
Alternative Methode
Ein anderer Weg zur Anzeige der OSM-Kacheln in QGIS ist
hier beschrieben.
GPX-Track
Ein GPX-Track kann als Vektor-Layer angezeigt werden:
- Menüpunkt Vektorlayer hinzufügen anwählen
- im Dialog die GPX-Datei auswählen und öffen
- im anschliessenden Auswahlfenster den Layer tracks und ggf. weitere Layer auswählen und mit OK bestätigen
- im Layer-Fenster die Eigenschaften der Track-Linie festlegen: Farbe, Breite,...
Karte drucken / Grafik erzeugen
Hierzu wird der Dialog
Neue Druckzusammenstellung geöffnet und mit
neue Karte hinzufügen ein Kartenauschnit in das Druckblatt eingefügt. Dabei wird der Kartenausschnitt aus dem Hauptfenster übernommen. Dieser kann im Modus
Inhalt verschieben nach Belieben gezoomt und verschoben werden
Die so erzeugten Ausdrucke haben eine
miserable Qualität. Der Zoomlevel der Kacheln wird entsprechend Auflösung des Ausdrucks und der Größe des Kartenauschnitts automatisch gewählt. Dann werden die Kacheln skaliert um den gewählten Kartenausschnitt zu erhalten. Das Ergebnis ist in den meisten Fällen ziemlich unscharf und für den Druck in der Regel nicht verwendbar.
Durch geeignete Wahl der Druckgröße und des Maßstabs des Kartenausschnitts kann man trotzdem eine akzeptable Bildqualität erreichen. Beispiele:
Format | Auflösung (dpi) | Maßstab | Zoomlevel |
---|
A4 | 300 | 57250 | 15 |
A4 | 150 | 57250 | 14 |
A4 | 72 | 57250 | 13 |
A1 | 72 | 57.250 | 13 |
A1 | 72 | 144.448 | 12 |
A1 | 300 | 144.448 | 14 |
A1 | 300 | 2.311.168 | 10 |
A1 | 72 | 577.792 | 10 |
Das beste Ergebnis erziele ich allerdings mit einer
Bildschirmkopie, da die Kacheln auf dem Bildschirm unskaliert dargestellt werden.