QGIS - Tipps und Tricks
Tipps und Tricks für Anwender von QGIS. Tipps und Tricks für Programmierer sind hier: QGIS Plugins mit Python.
Inhaltsverzeichnis
Hintergrund-Karten
Siehe auch Hintergrundkarten.
In QGIS gibt es folgende Möglichkeiten Hintergrundkarten zu laden:
- Im QGIS Core "WMS/WMTS Layer hinzufügen..."
- tbd
- Mittels Plugin "Openlayers" (nur Mercator Projektion)
- tbd
- Mittels Plugin "!TileLayerPlugin":
- TileLayerPlugin in QGIS installieren (Erweiterungen -> Verwalten und installieren... -> TileLayerPlugin)
- Die Datei "frame.tsv" unter C:\Users\<User>\.qgis2\python\plugins\TileLayerPlugin\layers wie folgt editieren:
- Neue Zeile nach den vorgefertigten Frames beginnen
- Folgende Werte (jeweils mit Tabstopp getrennnt) in genau dieser Reihenfolge eintragen:
- Name, Urheber, URL, yUrsprung, zmin, zmax, xmin, ymin, xmax, ymax
- Name: frei wählbar
- Urheber: frei wählbar
- URL: Vollständige Serveradresse mit Platzhaltern für X,Y,Z Werte ({x}, {y} oder {z})
- yUrsprung: Zwei mögliche Werte: 1 (der Ursprung (0/0) des Koordinatensystems ist in der oberen linken Ecke) bzw, 0(untere linke Ecke)
- zmin: kleinstmöglicher Zoom (normalerweise 0)
- zmax: maximaler Zoomwert
- xmin, ymin, xmax, ymax: Äussere Begrenzungen der Karte (xmin: West, ymin: Süd, xmax: Ost, ymax: Nord), angegeben in Längen- und Breitengraden. Sind die Koordinaten jeweils Westlich des Nullmeridians bzw. Südlich des Äquators, werden sie jeweils mit negativen Werten definiert, während Ost- und Nord-Koordinatenwerte positiv angegeben werden.
- Sind die Werte korrekt angegeben und durch Tabstopp getrennt, die "frame.tsv" Datei speichern und schliessen.
- Hinzufügen des eingegebenen Layers sollte nun möglich sein: im QGIS unter "Web -> TileLayerPlugin -> Add Tile Layer..." das Layer auswählen und "add" klicken.
- Beispiel: Geofabrik-Karte (siehe Hintergrundkarten)
- [Geofabrik | by Geofabrik | http://tile.geofabrik.de/549e80f319af070f8ea8d0f149a149c2/{z}/{x}/{y}.png | 1 | 0 | 17 | -179.9 | -85.05 | 179.9 | 85.05 ]
- ("|" und "[]" dienen hier nur der Darstellung; In der ".tsv" Datei leere Werte durch Tabstopps verwenden)
Web Publishing
Publish local QGIS project to the web/cloud:
- qgisio - plugin to publish any vector layer to geojson.io (by @CarsonFarmer): http://plugins.qgis.org/plugins/qgisio/
- G* Maps Engine Connector - plugin for Google Maps Engine (by Google): http://plugins.qgis.org/plugins/GoogleMapsEngineConnector/ http://www.youtube.com/watch?v=6_ikF_TEZCg
- Publish maps on qgiscloud.com (by Sourcepole): http://plugins.qgis.org/plugins/qgiscloud/ http://qgiscloud.com
Konfigurieren von QGIS
Siehe Vortrags-Folien "Konfektionierung von QGIS für spezielle Projekte" von Cédric Möri an der FOSSGIS 2011 => [1] (QGIS 1.7)
Ab QGIS 1.8 gibt neue Konfigurationsmöglichkeiten:
- Interaktiv, für einfache Benutzer: "Menu Settings > Customization..." mit eigener .ini-Datei
- Für professionelles Custimizing: Linifiti.com-Blog
Anforderungen an Datenbanken
- QGIS verlangt von allen Datenquellen ein Primärschlüssel-Attribut sowie ein Geometrieattribut z.B. "geom".
- Datenbanken können für 'gid' eine Sequenz mit Autoincrement definieren (PostGIS: serial-Typ).
- Um eine VIEW in PostGIS editierbar zu machen, kann zur Generierung von Ids als Primary Key eine Stored Procedure (FUNCTION) und/oder ein Instead-of-Trigger geschrieben werden.
SpatiaLite
Beispiel-Attribut (siehe auch "Editieren von Datenquellen"):
Id INTEGER PRIMARY KEY AUTOINCREMENT Name TEXT NOT NULL Geometry POINT
According to SQLite docs Row becomes an alias for the builtin rowid field, so values are automatically generated and no additional storage is required. You can use Name as a primary key, even make foreign keys in other tables refer to Name and ignore Row for almost all purposes if that's what you want.
Row INTEGER PRIMARY KEY Name TEXT UNIQUE NOT NULL Geometry POINT
Georeferenzieren von Rasterbildern
- Siehe auch Georeferenzieren von Bildern v.a. > Georeferenzieren rein Browser-basiert.
- Georeferencing with Quantum GIS: http://www.megwrm.aun.edu.eg/sub/workshop1/georeferencing_with_quantum_gis.pdf
Zugriff direkt auf andere Plugins
Im QGIS werden keine Zugriffe von Plugins auf Plugins unterstützt. Die einzige Möglichkeit ist es, dass man über den Pfad von anderen Plugins Funktionen importiert. Dabei muss man aufpassen, dass die beiden Plugins im gleichen Verzeichnis liegen. Weiter muss auf die Version des Plugins geachtet werden. Diese muss der Benutzer selbst überprüfen.
Formhelper Init Funktion
Über die „layerid“ von dem FormHelper kann man auf den aktuellen Layer zugreifen. Und zwar wie folgt:
layermap = QgsMapLayerRegistry.instance().mapLayers() self.layer = layermap.get(self.layerid)
Setzen der Init Funktion zu einem Formular
Kann direkt in Python gesetzt werden: QgsVectorLayer.setEditFormInit(QString function). Pfadangaben werden durch Punkte getrennt. Funktion "featureFormInit" im Initfile "grundn_zone.py" im Unterverzeichnis nplch/forms/ wie folgt:
nplch.forms.grundn_zone.featureFormInit
Dazu muss im gleichen Verzeichnis eine leere __init__.py Datei angelegt werden.
Tipps zu dies und das
- Generating (html) clickable image maps: See [2].
- Where are the general/global settings files? Depends on the OS: Under Windows, settings are stored in the registry, Linux ~/.config and under MacOS in the users plist directory.
- QGIS requires that the view has a column that can be used as a unique key. Such a column should be derived from a table column of type int4 and be a primary key, have a unique constraint on it, or be a PostgreSQL oid column. To improve performance the column should also be indexed.
- Piratenkarte/Schatzkarte (alter Kartenstil) u.a. mit QGIS: Vintage Maps