QGIS - Tipps und Tricks: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
(Hintergrund-Karten)
K (Zusammenstellung einiger freier Hintergrundkarten bzw. Basiskarten)
 
(49 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
Tipps und Tricks für Anwender von [[QGIS]]. Tipps und Tricks für Programmierer sind hier: [[QGIS Plugins mit Python]].
 
Tipps und Tricks für Anwender von [[QGIS]]. Tipps und Tricks für Programmierer sind hier: [[QGIS Plugins mit Python]].
  
== Hintergrund-Karten ==  
+
== Fachapplikationen ==
  
Siehe auch [[Hintergrundkarten]].
+
Siehe [[Fachapplikation]].
  
In QGIS gibt es folgende Möglichkeiten Hintergrundkarten zu laden:
+
== Hintergrundkarten in QGIS ==
# Im QGIS Core "WMS/WMTS Layer hinzufügen..."
+
 
##tbd
+
Siehe auch: [[Hintergrundkarten]] bzw. [[Web Map Tile Service]] (WMTS, XYZ/TMS). Hier muss beachtet werden, dass die meisten WMTS Mercator-Projektion als [[CRS]] haben.
# Mittels Plugin "Openlayers" (nur Mercator Projektion)
+
 
##tbd
+
In QGIS gibt es folgende Möglichkeiten, Hintergrundkarten bzw. Basiskarten zu laden:
# Mittels Plugin "!TileLayerPlugin":
+
 
## TileLayerPlugin in QGIS installieren (Erweiterungen -> Verwalten und installieren... -> TileLayerPlugin)
+
# Für viele Anwendungen genügt das '''direkte Eintragen in QGIS als "XYZ Tiles Service"''' in der Form "https://map.lemoninfo.ch/hot/{z}/{x}/{y}.png" und "Layer > Add Raster Layer..." gemäss [ https://docs.qgis.org/testing/en/docs/user_manual/managing_data_source/opening_data.html#using-xyz-tile-services QGIS-Dokumentation "Using XYZ Tile Services"). Dann kann evtl. noch die Interpolations-Unschärfe verbessert werden mittels "Layer Properties" und Umstellen von Resampling "Nearest neighbor" zu "Zoomed in Cubic".
## Die Datei "frame.tsv" unter C:\Users\<User>\.qgis2\python\plugins\TileLayerPlugin\layers wie folgt editieren:
+
# Viele Map Services sind im QGIS Plugin '''QuickMapServices (QMS)''' eingetragen (siehe [https://qms.nextgis.com/faq qms.nextgis.com]) und können damit - nach Installation des Plugins - innerhalb QGIS einfach als Hintergrundkarte ausgewählt werden.
### Neue Zeile nach den vorgefertigten Frames beginnen
+
# Eine XML-Datei-Konfiguration der GDAL-Bibliothek/CLI-Tool herunterladen (oder selber erstellen) und den Map Service in QGIS und anderen Tools als "GDAL Verbindung" (GDAL Connection) laden. Siehe dazu [[Hintergrundkarten#Our_favourites]].
### Folgende Werte (jeweils mit Tabstopp getrennnt) in genau dieser Reihenfolge eintragen:  
+
# Einige Map Services sind auch OGC WMTS-kompatibel veröffentlicht und können in QGIS als WMS/WMTS Layer hinzugfügt werden. Dazu muss eine URL angegeben werden, die auf WMTSCapabilities.xml zeigt, also z.B. [[#Swisstopo_WMTS]] unten und [[Web Map Tile Service]] (WMTS).
#### <b>Name, Urheber, URL, yUrsprung, zmin, zmax, xmin, ymin, xmax, ymax</b>
+
# Neu gibt es [[Vector Tiles]], die von QGIS ab Version 3.14 unterstützt werden, mit typischen Vector Tile Services wie von MapTiler.
#### <b>Name:</b> frei wählbar
+
 
#### <b>Urheber:</b> frei wählbar
+
Weitere QGIS-Plugins sind oder waren:
#### <b>URL:</b> Vollständige Serveradresse mit Platzhaltern für X,Y,Z Werte ({x}, {y} oder {z})
+
* Plugins ''Openlayers Plugin'', ''Tile Map Scale Plugin''
#### <b>yUrsprung:</b> Zwei mögliche Werte: 1 (der Ursprung (0/0) des Koordinatensystems ist in der oberen linken Ecke) bzw, 0(untere linke Ecke)
+
* ''TileLayer Plugin'':
#### <b>zmin:</b> kleinstmöglicher Zoom (normalerweise 0)
+
** Konfigurations-Datei [[Media:frame.zip]] herunterladen und entpacken.
#### <b>zmax:</b> maximaler Zoomwert
+
** Die darin enthaltene Datei "frame.tsv" ins Verzeichnis "C:\Benutzer\<Benutzer>\.qgis2\python\plugins\TileLayerPlugin\layers" kopieren und ggf. die bereits vorhandene (leere oder mit den 2 Default Karten) Datei ersetzen.
#### <b>xmin, ymin, xmax, ymax:</b> Ä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.
+
** Im QGIS unter dem Reiter "Web -> TileLayerPlugin -> Add Tile Layer..." sollten nun weitere Karten angezeigt werden.
## Sind die Werte korrekt angegeben und durch Tabstopp getrennt, die "frame.tsv" Datei speichern und schliessen.
+
** Gewünschte Karten auswählen und mittels "Add" als Layers hinzufügen.
## 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.
+
 
## <b>Beispiel:</b> Geofabrik-Karte (siehe [[Hintergrundkarten]]) <br> - [Geofabrik | by Geofabrik | http://tile.geofabrik.de/549e80f319af070f8ea8d0f149a149c2/{z}/{x}/{y}.png | 1 | 0 | 17 | -179.9 | -85.05 | 179.9 | 85.05 ] <br> - ("|" und "[]" dienen hier nur der Darstellung; In der ".tsv" Datei leere Werte durch Tabstopps verwenden)
+
=== Zusammenstellung einiger freier Hintergrundkarten bzw. Basiskarten ===
 +
 
 +
Alle folgenden Basiskarten bzw. Hintergrundkarten lassen sich in QGIS als XYZ-Raster-Service. Für eine Anleitung siehe das [https://docs.qgis.org/3.10/en/docs/user_manual/managing_data_source/opening_data.html?highlight=xyz#using-xyz-tile-services offizielle QGIS-Benutzerhandbuch].
 +
 
 +
# ''OSM Standard'': OpenStreetMap Standard-Kartenstil ("Carto/Mapnik Style") u.a. mit Adressen und POI (by OSMF); in QMS. ([https://c.tile.openstreetmap.org/{z}/{x}/{y}.png XYZ-Service URI])
 +
# ''Wikimedia Map (OSM inside)'': Alternative zum OpenStreetMap Standard-Kartenstil (by Wikimedia/Project Kartotherian); in QMS. ([https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png XYZ-Service URI])
 +
# ''OpenTopoMap'': Dem deutschen Landeskartenstil angelehnt, mit Geländeschummerung (by opentopomap.org); in QMS. ([https://a.tile.opentopomap.org/{z}/{x}/{y}.png XYZ-Service URI])
 +
# ''bergfex osm'': Für Outdoor-Anwendungen, OpenStreetMap-basiert, mit Geländeschummerung (by bergfex.com); in QMS. ([http://maps.bergfex.at/osm/standard/{z}/{x}/{y}.jpg XYZ-Service URI])
 +
# ''Positron (retina, by Carto)'': reine Hintergrundkarte in hoher Auflösung (by CARTO.com); in QMS. ([http://a.basemaps.cartocdn.com/light_all/{z}/{x}/{y}@2x.png XYZ-Service URI])
 +
# ''Stamen Toner (retina)'': Schwarz-Weiss für kleine Massstäbe, OpenStreetMap-basiert (by Stamen.com), in QMS. ([http://tile.stamen.com/toner/{z}/{x}/{y}@2x.png XYZ-Service URI])
 +
# ''ESRI World Topo'': Map is designed to be used as a basemap by GIS professionals and as a reference map by anyone (by ESRI), in QMS. ([http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x} XYZ-Service URI])
 +
# ''ESRI Satellite'': Satellitenbild (by ESRI), in QMS.
 +
* Dazu als weiterer Tipp folgende (nicht in QMS)
 +
** ''OSM Swiss Style'': mit Adressen und Geländeschummerung (by SOSM.ch) ([https://tile.osm.ch/osm-swiss-style/{z}/{x}/{y}.png XYZ-Service URI]), siehe [[Hintergrundkarten#Our_favourites]] und weitere OpenStreetMap-basierte [https://wiki.openstreetmap.org/wiki/Tile_servers Map Tile Servers], die u.a. weitere POI darstellen, wie Brunnen, Defibrillatoren/AED etc..
 +
** ''Swisstopo Pixelkarte PK25 Farbe'' (by Swisstopo.ch): siehe [[#Swisstopo_WMTS]]
 +
 
 +
<gallery>
 +
  Datei:Map_Service_OSM_Standard.png| 1. OSM Standard
 +
  Datei:Map_Service_Wikimedia_Map.png| 2. Wikimedia Map
 +
  Datei:Map Service_OpenTopoMap.png| 3. OpenTopoMap
 +
  Datei:Map_Service_berfex_osm.png| 4. berfex osm
 +
  Datei:Map_Service_CARTO_Positron_retina.png| 5. Positron (by Carto)
 +
  Datei:Map_Service_Stamen_Toner_Retina.png| 6. Stamen Toner
 +
  Datei:Map_Service_OSM_Swiss_Style.png| 9. OSM Swiss Style
 +
</gallery>
 +
 
 +
<div style="border:solid 1px grey; padding:1em 1em 1em 1em;">
 +
{|
 +
| [[Bild:Hinweis.jpg|20px]]
 +
|'''Hinweis:'''
 +
Nicht alle Map Services eignen sich gleich gut als Hintergrundkarte.
 +
Ein beliebter Map Service ist der '''OpenStreetMap Standard''' ("Carto/Mapnik Style").
 +
|}
 +
</div>
 +
 
 +
== Swisstopo WMTS ==
 +
 
 +
Nutzen der Swisstopo Pixelkarte (Landeskarte) 1:25'000 (PK25) im QGIS als WMTS. Auf http://www.skitourenguru.ch/index.php/routenlage Punkt C. "Tools" steht mit den "aufgeführten Swisstopo-Layers können in QGIS mit Hilfe eines WMTS/WMS-Layers eingeblendet werden". Das geht wie folgt:
 +
 
 +
I. Einmaliges Einrichten:
 +
* Mittels QGIS-Menu "Layer" > Layer hinzufügen > Layer WMTS/WMS hinzufügen… den Dialog "Datenquellenverwaltung | WMTS/WMS" öffnen
 +
* Dann im Dialog "Datenquellenverwaltung | WMTS/WMS" "Neu" und folgendes angeben:
 +
* Name "Pixelkarte PK25 Farbe (WMTS)"; URL "https://wmts.geo.admin.ch/1.0.0/WMTSCapabilities.xml"; Referer: "http://map.geo.admin.ch"
 +
 
 +
II. Einfügen ins QGIS-Projekt:
 +
* Im Dialog "Verbinden" mit
 +
* Wählen von "ch.swisstopo.pixelkarte-farbe-pk25.noscale" => "Landeskarte 1:25'000 | LK25",
 +
* Button "Hinzufügen" klicken und Dialog schliessen
 +
* Ev. Layer im QGIS-Layerselektor nach unten in den Hintergrund schieben.
 +
 
 +
Technisch und wegen Nutzungsbedingungen nennenswert ist hier der Referer-Wert "http://map.geo.admin.ch". Damit wird dem Server angegeben, der Nutzer heisse "GeoAdmin".
 +
 
 +
== Offline-Kacheln erzeugen mit QTiles ==
 +
 
 +
QTiles ist ein QGIS-Plugin, dass Raster-Kacheln des aktuellen QGIS-Projekts generiert (XYZ oder TMS-Format bzw. WTMS).
 +
 
 +
Mit den aus QTiles generierten Kacheln kann ein gesamtes QGIS-Projekt auf folgende Arten als Basis-Raster-Karte (d.h. Basis-Layer) genutzt werden:
 +
* Lokal mit QGIS ohne weitere Abhängigkeiten (vgl. nachfolgend).
 +
* In Offline Mobile Apps wie z.B. NextGIS Mobile, GeoPaparazzi, etc.
 +
* Als Webkarte (Leaflet) im Web ohne weiteren Server (verlangt HTML/CSS/Javascript-Programmierkenntnisse).
 +
 
 +
Bemerkungen: QTiles ist zurzeit auf max. 65535 Kacheln beschränkt (vgl. [https://github.com/nextgis/QTiles/issues/102 Issue]). Das ist v.a. abhängig von der Gebietsgrösse im QGIS-Projekt.  
 +
 
 +
Wie erwähnt, kann QGIS eine WMTS-Layer-Quelle auch lokal von einem entsprechend erzeugten Verzeichnis lesen. Das geht wie folgt:
 +
 
 +
Schitt 0. Vorbereitung:
 +
* In QGIS-Menu "Erweiterungen" > Installieren von "QTiles3" (das Plugin sollte eigentlich einfach QTiles heissen).
 +
* "MeinProjekt" erstellen.
 +
 
 +
Schitt 1. "MeinProjekt"-Kacheln generieren:
 +
* QTiles laden.
 +
* Kacheln erzeigen mit folgenden Parametern: lokales Verzeichnis "...\MeinProjekt\" (Windows); typischerweise von Min. Zoom-Level ca. 8 bis Max. Zoom-Level 21.
 +
 
 +
Schitt 2. "MeinProjekt"-Kacheln lokal vorbereiten:
 +
* Generierte Kacheln in ein lokales Verzeichnis ".../MeinProjekt/" kopieren oder auspacken.
 +
* Datei "WMTSCapabilities.xml" von [https://github.com/nextgis/QTiles/files/3040081/WMTSCapabilities.xml.txt hier] herunterladen in ein temporäres Verzeichnis (funktioniert von Zoom-Level 0 bis 21). (Diese Datei WMTSCapabilities.xml könnte in Zukunft auch direkt von QTiles generiert werden, vgl. [https://github.com/nextgis/QTiles/issues/101 Issue]).
 +
* Umbenennen von WMTSCapabilities.xml.txt in WMTSCapabilities.xml.
 +
* Neues Verzeichnis unterhalb "...\MeinProjekt\" namens "1.0.0" erzeugen.
 +
* Die Datei WMTSCapabilities.xml in dieses Verzeichnis "...\MeinProjekt\1.0.0" verschieben.
 +
* Die Datei WMTSCapabilities.xml editieren: An drei Stellen die Links, die mit "file:///C:/Daten/..." beginnen, mit dem absoluten lokalen Pfad "file:///C:/Daten/.../1.0.0/WMTSCapabilities.xml" ersetzen.
 +
 
 +
Schitt 3. "MeinProjekt"-Kacheln als WMTS in QGIS lokal nutzen:
 +
* In QGIS Dialog "WMTS-Layer hinzufügen..."
 +
* Neuer Layer anlegen > Als URL den Pfad zu "MeinProjekt\1.0.0\WMTSCapabilities.xml" angeben ("file:///C:/Daten/.../1.0.0/WMTSCapabilities.xml").
  
 
== Web Publishing ==
 
== Web Publishing ==
Zeile 33: Zeile 116:
 
* 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  
 
* 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  
 
* Publish maps on qgiscloud.com (by Sourcepole): http://plugins.qgis.org/plugins/qgiscloud/ http://qgiscloud.com  
 +
 +
== TileLayerPlugin konfigurieren ==
 +
 +
# 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:
 +
### <b>Name, Urheber, URL, yUrsprung, zmin, zmax, xmin, ymin, xmax, ymax</b>
 +
### <b>Name:</b> Frei wählbar
 +
### <b>Urheber:</b> Frei wählbar
 +
### <b>URL:</b> Vollständige Serveradresse mit Platzhaltern für X,Y,Z Werte ({x}, {y} oder {z})
 +
### <b>yUrsprung:</b> Zwei mögliche Werte: 1 (der Ursprung (0/0) des Koordinatensystems ist in der oberen linken Ecke) bzw, 0(untere linke Ecke)
 +
### <b>zmin:</b> Kleinstmöglicher Zoom (normalerweise 0)
 +
### <b>zmax:</b> Maximaler Zoomwert
 +
### <b>xmin, ymin, xmax, ymax:</b> Ä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 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.
 +
# <b>Beispiel:</b> OSM Mapnik (siehe [[Hintergrundkarten]]) <br> - [OSM Mapnik|  | <nowiki>http://a.tile.openstreetmap.org/{z}/{x}/{y}.png</nowiki> | 1 | 0 | 18| -179.9 | -85.05 | 179.9 | 85.05 ] <br> - ("|" und "[]" dienen hier nur der Darstellung. In der ".tsv" Datei alleinstehende Werte, lediglich durch Tabstopps getrennt, verwenden)
  
 
== Konfigurieren von QGIS ==
 
== Konfigurieren von QGIS ==
Zeile 95: Zeile 196:
 
* 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.
 
* 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]]
 
* Piratenkarte/Schatzkarte (alter Kartenstil) u.a. mit QGIS: [[Vintage Maps]]
 
+
* ESRI File Geodatabase (FileGDB, OGR driver "OpenFileGDB"): This is a read-only, non-editable (proprietary) format stored as a directory with .gdb extension (e.g. myfilegeodatabase.gdb/). Hint: Never store anything other in this directory - especially NOT Shapefiles; this would corrupt the FileGDB.
  
 
[[Kategorie:QGIS]]
 
[[Kategorie:QGIS]]

Aktuelle Version vom 2. Juni 2020, 17:05 Uhr

Tipps und Tricks für Anwender von QGIS. Tipps und Tricks für Programmierer sind hier: QGIS Plugins mit Python.

Fachapplikationen

Siehe Fachapplikation.

Hintergrundkarten in QGIS

Siehe auch: Hintergrundkarten bzw. Web Map Tile Service (WMTS, XYZ/TMS). Hier muss beachtet werden, dass die meisten WMTS Mercator-Projektion als CRS haben.

In QGIS gibt es folgende Möglichkeiten, Hintergrundkarten bzw. Basiskarten zu laden:

  1. Für viele Anwendungen genügt das direkte Eintragen in QGIS als "XYZ Tiles Service" in der Form "https://map.lemoninfo.ch/hot/{z}/{x}/{y}.png" und "Layer > Add Raster Layer..." gemäss [ https://docs.qgis.org/testing/en/docs/user_manual/managing_data_source/opening_data.html#using-xyz-tile-services QGIS-Dokumentation "Using XYZ Tile Services"). Dann kann evtl. noch die Interpolations-Unschärfe verbessert werden mittels "Layer Properties" und Umstellen von Resampling "Nearest neighbor" zu "Zoomed in Cubic".
  2. Viele Map Services sind im QGIS Plugin QuickMapServices (QMS) eingetragen (siehe qms.nextgis.com) und können damit - nach Installation des Plugins - innerhalb QGIS einfach als Hintergrundkarte ausgewählt werden.
  3. Eine XML-Datei-Konfiguration der GDAL-Bibliothek/CLI-Tool herunterladen (oder selber erstellen) und den Map Service in QGIS und anderen Tools als "GDAL Verbindung" (GDAL Connection) laden. Siehe dazu Hintergrundkarten#Our_favourites.
  4. Einige Map Services sind auch OGC WMTS-kompatibel veröffentlicht und können in QGIS als WMS/WMTS Layer hinzugfügt werden. Dazu muss eine URL angegeben werden, die auf WMTSCapabilities.xml zeigt, also z.B. #Swisstopo_WMTS unten und Web Map Tile Service (WMTS).
  5. Neu gibt es Vector Tiles, die von QGIS ab Version 3.14 unterstützt werden, mit typischen Vector Tile Services wie von MapTiler.

Weitere QGIS-Plugins sind oder waren:

  • Plugins Openlayers Plugin, Tile Map Scale Plugin
  • TileLayer Plugin:
    • Konfigurations-Datei Media:frame.zip herunterladen und entpacken.
    • Die darin enthaltene Datei "frame.tsv" ins Verzeichnis "C:\Benutzer\<Benutzer>\.qgis2\python\plugins\TileLayerPlugin\layers" kopieren und ggf. die bereits vorhandene (leere oder mit den 2 Default Karten) Datei ersetzen.
    • Im QGIS unter dem Reiter "Web -> TileLayerPlugin -> Add Tile Layer..." sollten nun weitere Karten angezeigt werden.
    • Gewünschte Karten auswählen und mittels "Add" als Layers hinzufügen.

Zusammenstellung einiger freier Hintergrundkarten bzw. Basiskarten

Alle folgenden Basiskarten bzw. Hintergrundkarten lassen sich in QGIS als XYZ-Raster-Service. Für eine Anleitung siehe das offizielle QGIS-Benutzerhandbuch.

  1. OSM Standard: OpenStreetMap Standard-Kartenstil ("Carto/Mapnik Style") u.a. mit Adressen und POI (by OSMF); in QMS. (XYZ-Service URI)
  2. Wikimedia Map (OSM inside): Alternative zum OpenStreetMap Standard-Kartenstil (by Wikimedia/Project Kartotherian); in QMS. (XYZ-Service URI)
  3. OpenTopoMap: Dem deutschen Landeskartenstil angelehnt, mit Geländeschummerung (by opentopomap.org); in QMS. (XYZ-Service URI)
  4. bergfex osm: Für Outdoor-Anwendungen, OpenStreetMap-basiert, mit Geländeschummerung (by bergfex.com); in QMS. (XYZ-Service URI)
  5. Positron (retina, by Carto): reine Hintergrundkarte in hoher Auflösung (by CARTO.com); in QMS. (XYZ-Service URI)
  6. Stamen Toner (retina): Schwarz-Weiss für kleine Massstäbe, OpenStreetMap-basiert (by Stamen.com), in QMS. (XYZ-Service URI)
  7. ESRI World Topo: Map is designed to be used as a basemap by GIS professionals and as a reference map by anyone (by ESRI), in QMS. (XYZ-Service URI)
  8. ESRI Satellite: Satellitenbild (by ESRI), in QMS.
Hinweis.jpg Hinweis:

Nicht alle Map Services eignen sich gleich gut als Hintergrundkarte. Ein beliebter Map Service ist der OpenStreetMap Standard ("Carto/Mapnik Style").

Swisstopo WMTS

Nutzen der Swisstopo Pixelkarte (Landeskarte) 1:25'000 (PK25) im QGIS als WMTS. Auf http://www.skitourenguru.ch/index.php/routenlage Punkt C. "Tools" steht mit den "aufgeführten Swisstopo-Layers können in QGIS mit Hilfe eines WMTS/WMS-Layers eingeblendet werden". Das geht wie folgt:

I. Einmaliges Einrichten:

II. Einfügen ins QGIS-Projekt:

  • Im Dialog "Verbinden" mit
  • Wählen von "ch.swisstopo.pixelkarte-farbe-pk25.noscale" => "Landeskarte 1:25'000 | LK25",
  • Button "Hinzufügen" klicken und Dialog schliessen
  • Ev. Layer im QGIS-Layerselektor nach unten in den Hintergrund schieben.

Technisch und wegen Nutzungsbedingungen nennenswert ist hier der Referer-Wert "http://map.geo.admin.ch". Damit wird dem Server angegeben, der Nutzer heisse "GeoAdmin".

Offline-Kacheln erzeugen mit QTiles

QTiles ist ein QGIS-Plugin, dass Raster-Kacheln des aktuellen QGIS-Projekts generiert (XYZ oder TMS-Format bzw. WTMS).

Mit den aus QTiles generierten Kacheln kann ein gesamtes QGIS-Projekt auf folgende Arten als Basis-Raster-Karte (d.h. Basis-Layer) genutzt werden:

  • Lokal mit QGIS ohne weitere Abhängigkeiten (vgl. nachfolgend).
  • In Offline Mobile Apps wie z.B. NextGIS Mobile, GeoPaparazzi, etc.
  • Als Webkarte (Leaflet) im Web ohne weiteren Server (verlangt HTML/CSS/Javascript-Programmierkenntnisse).

Bemerkungen: QTiles ist zurzeit auf max. 65535 Kacheln beschränkt (vgl. Issue). Das ist v.a. abhängig von der Gebietsgrösse im QGIS-Projekt.

Wie erwähnt, kann QGIS eine WMTS-Layer-Quelle auch lokal von einem entsprechend erzeugten Verzeichnis lesen. Das geht wie folgt:

Schitt 0. Vorbereitung:

  • In QGIS-Menu "Erweiterungen" > Installieren von "QTiles3" (das Plugin sollte eigentlich einfach QTiles heissen).
  • "MeinProjekt" erstellen.

Schitt 1. "MeinProjekt"-Kacheln generieren:

  • QTiles laden.
  • Kacheln erzeigen mit folgenden Parametern: lokales Verzeichnis "...\MeinProjekt\" (Windows); typischerweise von Min. Zoom-Level ca. 8 bis Max. Zoom-Level 21.

Schitt 2. "MeinProjekt"-Kacheln lokal vorbereiten:

  • Generierte Kacheln in ein lokales Verzeichnis ".../MeinProjekt/" kopieren oder auspacken.
  • Datei "WMTSCapabilities.xml" von hier herunterladen in ein temporäres Verzeichnis (funktioniert von Zoom-Level 0 bis 21). (Diese Datei WMTSCapabilities.xml könnte in Zukunft auch direkt von QTiles generiert werden, vgl. Issue).
  • Umbenennen von WMTSCapabilities.xml.txt in WMTSCapabilities.xml.
  • Neues Verzeichnis unterhalb "...\MeinProjekt\" namens "1.0.0" erzeugen.
  • Die Datei WMTSCapabilities.xml in dieses Verzeichnis "...\MeinProjekt\1.0.0" verschieben.
  • Die Datei WMTSCapabilities.xml editieren: An drei Stellen die Links, die mit "file:///C:/Daten/..." beginnen, mit dem absoluten lokalen Pfad "file:///C:/Daten/.../1.0.0/WMTSCapabilities.xml" ersetzen.

Schitt 3. "MeinProjekt"-Kacheln als WMTS in QGIS lokal nutzen:

  • In QGIS Dialog "WMTS-Layer hinzufügen..."
  • Neuer Layer anlegen > Als URL den Pfad zu "MeinProjekt\1.0.0\WMTSCapabilities.xml" angeben ("file:///C:/Daten/.../1.0.0/WMTSCapabilities.xml").

Web Publishing

Publish local QGIS project to the web/cloud:

TileLayerPlugin konfigurieren

  1. TileLayerPlugin in QGIS installieren (Erweiterungen -> Verwalten und installieren... -> TileLayerPlugin)
  2. Die Datei "frame.tsv" unter C:\Users\<User>\.qgis2\python\plugins\TileLayerPlugin\layers wie folgt editieren:
    1. Neue Zeile nach den vorgefertigten Frames beginnen
    2. Folgende Werte (jeweils mit Tabstopp getrennnt) in genau dieser Reihenfolge eintragen:
      1. Name, Urheber, URL, yUrsprung, zmin, zmax, xmin, ymin, xmax, ymax
      2. Name: Frei wählbar
      3. Urheber: Frei wählbar
      4. URL: Vollständige Serveradresse mit Platzhaltern für X,Y,Z Werte ({x}, {y} oder {z})
      5. yUrsprung: Zwei mögliche Werte: 1 (der Ursprung (0/0) des Koordinatensystems ist in der oberen linken Ecke) bzw, 0(untere linke Ecke)
      6. zmin: Kleinstmöglicher Zoom (normalerweise 0)
      7. zmax: Maximaler Zoomwert
      8. 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 mit negativen Werten definiert, während Ost- und Nord-Koordinatenwerte positiv angegeben werden.
  3. Sind die Werte korrekt angegeben und durch Tabstopp getrennt, die "frame.tsv" Datei speichern und schliessen.
  4. 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.
  5. Beispiel: OSM Mapnik (siehe Hintergrundkarten)
    - [OSM Mapnik| | http://a.tile.openstreetmap.org/{z}/{x}/{y}.png | 1 | 0 | 18| -179.9 | -85.05 | 179.9 | 85.05 ]
    - ("|" und "[]" dienen hier nur der Darstellung. In der ".tsv" Datei alleinstehende Werte, lediglich durch Tabstopps getrennt, verwenden)

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

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
  • ESRI File Geodatabase (FileGDB, OGR driver "OpenFileGDB"): This is a read-only, non-editable (proprietary) format stored as a directory with .gdb extension (e.g. myfilegeodatabase.gdb/). Hint: Never store anything other in this directory - especially NOT Shapefiles; this would corrupt the FileGDB.