Eigene GIS-Fachapplikationen mit QGIS 2 erstellen

Aus Geoinformation HSR
Version vom 20. April 2015, 13:02 Uhr von Stefan (Diskussion | Beiträge) (hat „Eigene GIS-Fachapplikationen mit QGIS erstellen Beta“ nach „Eigene GIS-Fachapplikationen mit QGIS 2 erstellen“ verschoben)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Am Beispiel der Zonenplanung zeigt diese Anleitung, wie eine GIS-Fachapplikation in QGIS erstellt werden kann.


Voraussetzungen

  • Betriebssystem: Jedes, das von QGIS unterstützt wird. Es sind keine OS-Admin-Rechte nötig, der Datenbankbenutzer musss jedoch Schreibrechte haben und Tabellen anlegen können.
  • QGIS mindestens 2.8 installiert
  • PostgreSQL/PostGIS installiert
  • QGIS Interlis-Plugin

PostgreSQL und PostGIS installieren

Die PostgreSQL Distribution von EterpriseDB enthält pgAdmin, ein benutzerfreundliches PostgreSQL Administrationstool. Ebenfalls ist dabei der "Application Stack Builder" enthalten, mit dem Sie PostGIS installieren können. Bei der Anleitung wird vorausgesetzt, dass pgAdmin benutzt wird. Stellen Sie sicher, dass sie im Installationsprozess PostGIS installiert wird (Unter Spatial Extensions im Stack Builder).

http://www.enterprisedb.com/products-services-training/pgdownload

Sie können PostgreSQL und PostGIS auch als alleinstehende Software unter folgenden URLs herunterladen:

http://www.postgresql.org/download/ http://postgis.refractions.net/download/

QGIS-Plugins installieren und konfigurieren

1. Daten vorbereiten

  • Für die Durchführung dieser Anleitung braucht es eine bereits bestehende PostgreSQL Datenbank.
    • Erstellen Sie diese mit dem Namen "zplnaenikon" (Nach verbinden zur Datenbank: Rechtsklick auf "Datenbanken" > neue "Datenbank")
    • Die Postgis Erweiterung zur Datenbank hinzufügen (Erstellte Datenbank aufklappen > Rechtsklick auf "Extensions" > "Neue Extension" > Name: postgis)*
  • Folgende Daten finden sie in einer ZIP Datei auf dem wiki:
    • INTERLIS-Modell: Definiert das Datenbank-Schema und enthält verschiedene Enumerationen.
    • CSV-Tabellen: Aufzählung von Zonentypen und Eigenschaften.
    • DXF-Datei: Enthält Beispiel-Zonen.
    • Zonenplan-Legende: Legt die Einfärbung einer Zone fest.
    • LINK ZUM WIKI
  • Unter Werkzeuge für Interlis finden Sie der Download zu der ZIP Datei, in dem sich eine Datei mit dem Namen "ili2c.jar" befindet. Entpacken Sie diese Datei in einen Ordner, wo Sie diese wiederfinden. Die anderen Dateien in diesem Archiv werden nicht benötigt.

2. QGIS-Projekt einrichten

  • Starten Sie QGIS. Falls bereits ein Projekt vorhanden ist, erstellen Sie ein neues unter "Projekt" > "Neu".
  • Für das importieren von Interlis Daten in QGIS wird eine Erweiterung benötigt. Diese können Sie unter "Erweiterungen" > "Erweiterungen verwalten und installieren" > Suche nach "Interlis".
    • Starten Sie die Interlis Erweiterung, indem Sie auf dieses Icon klicken: Interlis (Ist dieses Icon nicht im Menu Sichtbar, ist die Erweiterung nicht installiert oder aktivi
    • Geben Sie unter "Einstellungen" > "ili2c.jar Pfad" den Pfad zur in Schritt 1 heruntergeladenen Datei ein.
    • Schliessen Sie die Erweiterung.
  • Fügen Sie einen WMS-Layer als Hintergrund ein unter "Layer" > "Layer Hinzufügen" > "WMS/WMTS-Layer hinzufügen..."
    • Klicken Sie in diesem Fenster auf "Neu" um eine WMS-Verbindung herzustellen.
    • Nennen Sie die Verbindung "av_uster" und geben Sie folgende URL im Feld "URL" an: http://webgis.uster.ch/wms/av/grundplan_av
    • Drücken Sie auf "OK". Wählen Sie die soeben erstellte Verbindung oben im Aufklappmenü und drücken Sie auf "Verbinden".
    • Wählen Sie das Feld "Übersicht Vektor25" und klicken Sie auf "Hinzufügen".
  • Stellen Sie unter "Layer" > "Layer Hinzufügen" > "PostGIS-Layer hinzufügen" eine PostGIS Verbindung her.
    • Drücken Sie auf "Neu" um die Verbindung zu erzeugen. Fügen Sie folgende Daten in die Felder ein:
      • Name: zplnaenikon
      • Host: localhost
      • Datenbank: zplnaenikon
      • Benutzername und Passwort wie von ihnen eingestellt
      • Kreuzen Sie die Felder "Benutzernamen speichern" und "Passwort speichern" an. Sonst kann die Interlis Erweiterung die Verbindung nicht herstellen
    • Testen Sie die Verbindung mit "Verbindung Testen"
    • Ist die Verbindung erfolgreich können Sie den Vorgang mit "OK" beenden und das Fenster schliessen.
  • Speichern Sie das Projekt mit dem Namen "zonenplanung" unter "Projekt" > "Speichern" an einem beliebigen Ort.
  • Schliessen Sie QGIS und öffnen Sie das Projekt, indem Sie auf die soeben erstellte Projektdatei doppelklicken. Der neustart ist notwendig, da die Interlis Erweiterung sonst die neu erstellte Verbindung nicht erkennt.
  • Als nächstes soll das Interlis Datenmodell in die Datenbank importiert werden.
    • Starten Sie wieder die Interlis Erweiterung.
    • Geben Sie im Feld "IlisMeta Modell" den Pfad zur .imd Datei, die in den heruntergeladenen Untrelagen unter "Unterlagen/INTERLIS/NP_73_CH_de_ili2.imd" abgelegt ist
    • Wählen sie "zplnaenikon" als Speicherort.
    • Klicken Sie auf "DB-Tabellen anlegen" und danach auf "Enums importieren".
    • Die Tabellen sollten jetzt importiert sein. Sie können das Plugin schliessen.
  • Als nächstes müssen Sie die Enumerationen zur Karte hinzufügen.
    • Erstellen Sie dafür eine Gruppe, indem Sie in der Layerübersicht in einer freien Fläche rechtsklicken und "Gruppe hinzufügen wählen". Nenne Sie diese "Enumerations".
    • Wählen sie die erstelle Gruppe an.
    • Verbinden Sie sich unter "Layer" < "PostGIS-Layer hinzufügen" mit der Datenbank.
    • Wählen Sie "Auch geometrielose Tabelle anzeigen" an.
    • Klappen Sie "Public" auf
    • Wählen Sie alle Tabellen, die mit "enum" beginnen an und fügen Sie diese mit "Hinzufügen" in der Karte hinzu.
    • Die Gruppen können zugeklappt werden.
  • Fügen Sie nun auf dieselbe Weise die Tabellen "n7_grundnutzung_zonenflaeche", "nutzungsplanung_nutzungsplanung_grundnutzung_zonentyp" und "nutzungsplanung_nutzungsplanung_grundnutzung_zonentyp_kt" ohne angewähle Gruppierung ein.
Ihre Layerübersicht sollte nun etwa so aussehen

3. Daten erfassen

  • Als erstes sollten Sie einige Zonendaten aus den beigelegten CSV Dateien in die Datenbank importieren.
    • Öffnen Sie dafür im DB-Manager das SQL-Fenster in ihrer Datenbank: "Datenbank" > "DB-Verwaltung" > "DB-Verwaltung" > Doppelklick auf "PostGIS" > Doppelklick auf "zplnaenikon" > F2 drücken
    • Geben Sie folgenden Befehl ein, vergessen Sie nicht <<PFAD ZUM zonentyp.csv und zonentyp_kt.csvFILE>> mit dem richtigen Pfad zu ersetzen:
      • COPY nutzungsplanung_nutzungsplanung_grundnutzung_zonentyp FROM '<<PFAD ZUM zonentyp.csv FILE>>' DELIMITER ';' ENCODING 'UTF8' CSV HEADER;
      • Drücken Sie auf "Ausführen"
    • Machen Sie dasselbe für folgenden Befehl:
      • COPY nutzungsplanung_nutzungsplanung_grundnutzung_zonentyp_kt FROM '<<PFAD ZUM zonentyp_kt.csv FILE>>' DELIMITER ';' ENCODING 'UTF8' CSV HEADER;
  • Bevor Sie anfangen können zu zeichnen müssen die Felder vom Layer, idem Sie zeichnen wollen, richtig konfiguriert werden.
    • Öffnen Sie die Einstellungen der Layerfelder: Rechtsklick auf "n7_grundnutzung_zonenflaeche" > "Eigenschaften" > "Felder".
    • Um folgende Einstellungen vorzunehmen, muss jeweils die Einstellung für das Bearbeitungselement geöffnet werden, indem man auf das dazugehörige Feld klickt. (Sollten momentan alle auf "Texteditor" eingestellt sein)
      • Stellen Sie in der Zeile mit den Namen "ogc_fid" und "tid" das Bearbeitungselement auf "Versteckt".
      • Stellen Sie in der Zeile mit dem Namen "herkunft" das Bearbeitungselement auf "Wertbeziehung", dort "Layer" auf "enum22_herkunft", "Schlüsselspalte" auf "enum" und "Wertspalte" auf "enumtxt".
      • Dasselbe gilt für die Zeile mit dem Namen "qualitaet", nur sollte "Layer" auf "enum22_qualitaet" gestellt werden.
      • Bei "zonentyp_1" stellen Sie das Bearbeitungselement auf "Wertbeziehung", dort dort "Layer" auf "nutzungsplanung_nutzungsplanund_grundnutzung_zonentyp", "Schlüsselspalte" auf "identifikator" und "Wertspalte" auf "abkuerzung".
    • Sie können die Eintellungen jetzt mit "OK" verlassen.
  • Nun können Sie beginnen Zonen zu zeichnen:
    • Zoomen Sie ins Gebiet der Gemeinde "Nänikon". Ist die eingefügte WMS Karte nicht sichtbar zoomen Sie mit Rechtsklick auf "Übersicht Vektor25" > "Auf den Layer zoomen" auf den Layer.
    • Wählen Sie nun den Layer "n7_grundnutzung_zonenflaeche" an. Mit Rechtsklick auf diesen schalten Sie Bearbeitungsmodus an.
    • Klicken Sie auf folgendes Icon um das Zeichnen eines Objektes zu starten: Objekt Hinzufügen
    • Jetzt können Sie ein Polygon zeichnen. Mit klick auf die Karte markieren Sie Eckpunkte. Linksklick beendet den Vorgang (mindestens 3 Punkte müssen gesetzt werden).
    • Nach Beendung des Zeichnens öffnet sich ein Fenster für die Eingabe von Attributen. Hier können Sie beliebige Werte wählen.
    • Das Aktivieren der Fangoption unter "Eintellungen" > "Fangoptionen" vereinfacht das editieren von angrenzenden Gebieten. Wählen Sie bei "Fang auf" "Zu Stützpunkt und Segment". Das ankreuzen von "Topologische Bearbeitung an" schaltet die automatische Anpassung von gemeinsamen Zonengrenzen beim verschieben eines Stützpunktes an.
    • Fügen Sie auf dieselbe Weise noch ein Polygon ein, dass das andere Polygon überschneidet.
    • Wie Sie sehen, wurde die Überlappung automatisch entfernt.
    • Mit Klick auf dieses Icon Objekt wählen aktivieren Sie den Auswahlmodus. In diesem können Sie die soeben erstellten Objekte anwählen.
  • Fügen Sie nun die in den Unterlagen beigelegte DXF Datei mit "Layer" > "Layer hinzufügen" > "Vektorlayer hinzufügen" zur Karte hinzu. (Unterlagen/DXF/naenikon.dxf)
  • Nennen Sie diesen Layer "naenikon" und ziehen Sie diesen in der Layerübersicht unter den Layer "n7_grundnutzung_zonenflaeche"
Die Attributtabelle nachdem Daten eingefügt wurden
  • Wählen Sie den soeben eingefügten Layer an und wählen Sie in diesem ein Objekt, dass an die erstellten Objekte angrenzt oder diese schneidet.
  • Kopieren Sie das angewählte Objekt mit "Bearbeiten" > "Objekt kopieren"
  • Wählen Sie den Layer "n7_grundnutzung_zonenflaeche" und fügen Sie das kopierte Objekt mit "Bearbeiten" > "Objekt einfügen" ein.
  • Unter "Layer" > "Attributtabelle öffnen" können Sie die fehlenden Daten der neu hinzugefügten Zone einfügen. (Vergessen Sie nicht den Fortschritt zu speichern)
  • Sie können jetzt den Layer "naenikon" ausblenden, indem Sie auf den Kasten Neben dem Namen in der Layerübersicht klicken.
  • Damit Sie Beschreibungen auf der Karte hinzufügen können, müssen Sie den Layer mit der Tabelle verknüpfen, die Zonenbezeichnungen enthält.
    • Öffnen Sie dafür wieder die Eigenschaften von "n7_grundnutzung_zonenflaeche". Wählen Sie dort "Verknüpfungen".
    • Mit dem Plus Zeichen fügen Sie eine Verknüpfung hinzu.
    • Im geöffneten Fenster muss "Layer" auf "nutzungsplanung_nutzungsplanund_grundnutzung_zonentyp", "Verknüpfungsfeld" auf "ogc_fid" und "Zielfeld" auf "zonentyp_1" gestellt werden.
  • Wählen Sie in der Layerübersicht "n7_grundnutzung_zonenflaeche" an und klicken Sie auf folgendes Icon um die Layerbeschriftungseinstellungen zu starten: Objekt wählen
    • Stellen Sie sicher, dass der Kasten oben links angekreuzt ist und setzten Sie "Layer beschriften mit" auf "nutzungsplanung_nutzungsplanung_grundnutzung_zonentyp_abkuerzung".
    • Beenden Sie den Vorgang mit "OK"
  • Die erstellen Flächen sollten nun beschriftet sein.
  • In den Layereigenschaften desselben Layers, können Sie nun die Füllfarben der erstellten Flächen festlegen. Dafür benutzen wir hier die Farben laut Vorgabe im PDF "Unterlagen/legende_zonenplan.pdf".
Zonenplan Naenikon nach dem Einfügen und Färben einiger Flächen
    • Wählen Sie dafür "Stil" in den Layereigenschaften.
    • Oben links sollte das Aufklappmenu auf "Kategorisiert" gestellt werden.
    • Wählen Sie als Spalte "nutzungsplanung_nutzungsplanung_grundnutzung_zonentyp_abkuerzung"
    • Klicken Sie auf "Klassifizieren", damit Sie für die einzelnen Abkürzungen Farben wählen können.
    • Wählen Sie einen Wert, den Sie auch für eine Fläche auf Ihrer Karte gewählt haben.
    • Stellen Sie die Farbe ein mit Doppelklick auf den Farbkasten vor der Abkürzung.
    • Je nach Betriebssystem können Sie den eingebauten Farbwähler benutzen um die Farbe aus dem PDF zu "kopieren".
    • Weitere Informationen zu den Styleoptionen in QGIS finden Sie hier: http://docs.qgis.org/1.8/de/docs/user_manual/working_with_vector/vector_properties.html#style-tab
    • Wenn Sie alle Felder, die Sie benötigen, eingefärbt haben, können Sie mit dem Exportieren der Ergebnisse fortfahren.

4. Ergebnis exportieren

  • Unter "Projekt" > "Neue Druckzusammenstellung (P)" erstellen Sie eine neue Exportvorlage für das Drucken und den PDF-Export.
  • Geben Sie "Zonenplanung Nänikon" als Titel ein.
  • Mit klick auf folgendes Icon können Sie eine Karte zur Vorlage hinzufügen: Objekt Hinzufügen. Stellen Sie sicher, dass rechts genug Platz ist für eine Legende (ca. 1/4 der Breite) und oben für einen Titel.
  • Unter "Anordnung" > "Beschriftung hinzufügen" können Sie eine Titelbeschriftung hinzufügen. Platzieren Sie diese über der Karte.
    • Im Fenster rechts geben Sie im Feld "Haupteigenschaften" "Zonenplan" ein.
    • Unter "Schriftart..." können Sie diee Schriftart und Grösse einstellen.
  • Fügen Sie mit "Anordnung" > "Legende Hinzufügen" eine Legende ein. Wählen Sie die rechts freigelassene Fläche an.
    • Im Menu rechts wählen Sie unter "Legendenelemente" "Automatisch aktualisieren" ab.
    • Entfernen Sie alle Elemente ausser "n7_grundnutzung_zonenflaeche" mit Klick auf die Elemente und danach Klick auf das Minus Symbol.
    • Klappen Sie das übrig gebliebene Element auf und wählen Sie das Element ohne Beschreibung.
    • Beschriften Sie dieses mit Klick auf folgendes Icon mit "Andere": [[File:Elementtext.PNG|25px|Elementtext Hinzufügen]
  • Unter "Zusammenstellung" > "Als Vorlage speichern..." können Sie die Vorlage speichern und später wieder öffnen.

Kontakt

  • Stefan Keller: sfkeller(at)hsr.ch
  • Pirmin Kalberer: pka(at)sourcepole.ch