FOSSGIS2013 - 36 2013_07_29

FOSSGIS 2013
Konferenz für freie und Open Source-Software im GIS-Bereich und für freie Geodaten

Referenten
Andreas Neumann
Matthias Kuhn
Programm
Tag Donnerstag - 2013-06-13
Raum 1.208 (WS)
Beginn 15:30
Dauer 01:30
Info
ID 615
Veranstaltungstyp Workshop
Track Workshops (bezahlt)
Sprache der Veranstaltung deutsch

QGIS-Formulare, Aktionen und DB-Relationen

QGIS stellt für die Gestaltung von Objektformularen 3 Möglichkeiten zur Verfügung: Das Standardformular mit der Möglichkeit Attribute ein/auszublenden resp. ein Eingabewidget zuzuweisen. Drag and Drop Designer: Der Administrator kann das Formulare in Tabs und Gruppen unterscheiden und die Reihenfolge beliebig selber definieren. Selbst definierte Formulare welche in qtDesigner erstellt werden. Die Gestaltung ist völlig frei. Das Formular wird in eine .ui (XML) Datei gespeichert und der Kartenebene zugewiesen. Wenn die Widgets mit Spaltennamen der Datenquelle korrespondieren werden die Werte automatisch dargestellt und wieder gespeichert Meist stehen Datensätze auch in Beziehungen zu einander (1:1, 1:n, n:m). Eine klassische Domäne der relationalen Datenbanken, welche QGIS als Datenquellen einbinden kann. Damit der Anwender aber auch Verknüpfungen über verschiedene Datenbanken und Dateien hinweg definieren kann benötigt QGIS einen „Relations Manager“. Dieser ist im Moment in Entwicklung und wird an der FOSSGIS 2013 erstmals einem grösseren Publikum vorgestellt. Basierend auf diesen Verknüpfungen können dann Objektformulare verknüpft und verschachtelt werden (z.b. alle Fernsehaufnahmen eines Kanalbauwerks verschachtelt in der Objektmaske des Kanalobjekts). Aktionen dienen zum Öffnen von externen Programmen oder Skripten aus dem Objektformular heraus, oder mit Hilfe des Hotlink-Werkzeugs. So kann z.b. ein verknüpftes Foto, ein Film, eine PDF-Datei oder eine Webapplikation aufgerufen werden. Aktionen können in den Ebeneneigenschaften festgelegt werden und können entweder für alle Betriebssysteme ident definiert werden oder für jedes Betriebssysteme separat. Neben Programmen können auch Python-Skripte aufgerufen werden – dabei steht die vollständige QGIS API zur Verfügung. Dem Programm oder Skript wird alternativ entweder ein Attributwert oder ein Ausdruck des Expression-Builders übergeben.

Für die Umsetzung vieler Fachschalen ist es nötig Formulare für die Eingabe von Attributwerten zu gestalten. Zudem werden oft Datenbankrelationen benötigt um Tabellen miteinander zu verbinden. Mit Hilfe von Aktionen können Scripte oder externe Programme aufgerufen werden. Aufgrund von Attributwerten des gewählten Geoobjekts können die Startup-Parameter dieser Programme festgelegt werden. QGIS stellt für die Gestaltung von Objektformularen 3 Möglichkeiten zur Verfügung: Das Standardformular mit der Möglichkeit Attribute ein/auszublenden resp. ein Eingabewidget (z.b. Textzeile, Texteditor, Kalender, Slider, Auswahlliste, etc.) zuzuweisen. Die Reihenfolge bei der Auflistung der Attributwerte wird dabei von der Datenquelle vorgegeben. Drag and Drop Designer: Der Administrator kann das Formulare in Tabs und Gruppen unterscheiden und die Reihenfolge beliebig selber definieren. Die zugeordneten Eingabewidgets werden wie beim Standardformular übernommen. Selbst definierte Formulare welche in qtDesigner erstellt werden. Die Gestaltung ist völlig frei. Das Formular wird in eine .ui (XML) Datei gespeichert und der Kartenebene zugewiesen. Wenn die Widgets mit Spaltennamen der Datenquelle korrespondieren werden die Werte automatisch dargestellt und wieder gespeichert Zusätzlich zu den 3 oben erwähnten Formularoptionen können Startupskripte (Python) zugewiesen werden. Diese werden beim Öffnen des Objektformulars ausgeführt. Damit kann man z.b. Widgets aufgrund vorhandener Daten einschränken oder abfüllen oder sonst auf Objektdaten im Formular reagieren. Meist stehen Datensätze auch in Beziehungen zu einander (1:1, 1:n, n:m). Eine klassische Domäne der relationalen Datenbanken, welche QGIS als Datenquellen einbinden kann. Damit der Anwender aber auch Verknüpfungen über verschiedene Datenbanken und Dateien hinweg definieren kann (z.b. zwischen Oracle und ESRI Shapefiles, oder PostgreSQL und MS SQL Server) benötigt QGIS einen „Relations Manager“. Dieser ist im Moment in Entwicklung und wird an der FOSSGIS 2013 erstmals einem grösseren Publikum vorgestellt. Basierend auf diesen Verknüpfungen können dann Objektformulare verknüpft und verschachtelt werden (z.b. alle Fernsehaufnahmen eines Kanalbauwerks verschachtelt in der Objektmaske des Kanalobjekts). Der Workshop gibt einen Einblick in den momentanen Stand dieser Entwicklung und einen Ausblick auf zukünftige Möglichkeiten in diesem Bereich. Aktionen dienen zum Öffnen von externen Programmen oder Skripten aus dem Objektformular heraus, oder mit Hilfe des Hotlink-Werkzeugs. So kann z.b. ein verknüpftes Foto, ein Film, eine PDF-Datei oder eine Webapplikation aufgerufen werden. Aktionen können in den Ebeneneigenschaften festgelegt werden und können entweder für alle Betriebssysteme ident definiert werden oder für jedes Betriebssysteme separat. So kann z.b. eine verknüpfte PDF-Datei in Windows mit Acrobat Reader, in OSX mit Preview und unter Linux mit Evince oder Okular aufgerufen werden. Neben Programmen können auch Python-Skripte aufgerufen werden – dabei steht die vollständige QGIS API zur Verfügung. Dem Programm oder Skript wird alternativ entweder ein Attributwert oder ein Ausdruck des Expression-Builders übergeben. Alle drei Teile des Workshops (Formulare, Relationen und Aktionen) dienen der vereinfachten Entwicklung von Fachschalen unter QGIS. Sie sollen über die kommenden Monate laufend ausgebaut und verbessert werden.