Model Baker macht das Arbeiten mit INTERLIS Datenmodellen in QGIS einfach. Dennoch bedürfen gewisse Szenarien noch manueller Konfigurationen. Eines davon ist das Arbeiten mit erweiterten Modellen. Dies könnte verbessert werden.
Wenn ein Modell bzw. Topic erweiterte Klassen enthält, werden die alle in der physischen Datenbank implementiert und folglich Layer in QGIS erstellt. Da die erweiterten Klassen oftmals die gleichen Namen haben, ist es schwierig sich zurecht zu finden.
Wenn eine in einer Assoziation referenzierte Klasse vererbt wird, führt dies in QGIS zu einer Relation pro Vererbung. Dies kann insbesondere mit Katalogen oder auch Behältern unübersichtlich werden.
Dabei möchte man meistens nur auf einem spezifischen Modell bzw. Topic arbeiten.
Bei der Generierung des QGIS Projekts in Model Baker sollen Benutzer:innen auswählen können, in welchem Modell bzw. Topic sie arbeiten möchten.
Das QGIS Projekt soll dann entsprechend generiert werden. Die Layer des gewählten Modells bzw. Topics sollen prominenter angezeigt werden. Die andern Layer versteckt oder unbenannt (evtl. auch in einer Gruppe gesammelt werden). Gewisse Relationen sollen nicht erstellt werden bzw. nicht im Formular hinzugefügt werden. Dies soll noch evaluiert werden. Genauso was im GUI Sinn macht.
Alternatives GUI:
Update: Bei genaurer Analyse wurde erkannt, dass in diesem Zusammenhang es wenig Sinn macht, ein spezifisches Modell auszuwählen. Wiederum könnten es auch mehrere Modelle sein, die erweitert wurden und folglich das Projekt dafür optimiert werden soll. Deshalb wär eher so ein GUI sinnvoll:
(könnte man auch mit Combobox lösen)
Möchte man die Daten im erweiterten Modell erfassen, allerdings im Format des Basismodelles exportieren, muss man aktuell den ili2db Kommando manuell bearbeiten (--exportModels
). Dies ist umständlich und fehleranfällig.
Es soll erkannt werden in welchen Formaten (Modellen) exportiert werden kann und im GUI dann eine weitere Checkboxliste bereitgestellt werden. So kann das Modell ausgewählt werden, in dem die exportierten Daten geschrieben sein sollen.
Falls die Implementierungen der ersten zwei Punkte einfacher sind als erwartet, kann die übrige Zeit zur Lösung der Behälter Problematik investiert werden.
Aktuell wird für jedes Topic ein Behälter erstellt, damit die Daten sauber erfasst werden können. Wird von dem Objekt des erweiterten Modell aber auf ein Objekt im Basismodell verwiesen, muss dieses Objekt ebenfalls im Behälter des erweiterten Modell erfasst werden.
Erstens sollen die Behälter des erweiterten Modelles in den Layer des Basismodells verfügbar sein. Zweitens könnten anhand des optimierten Projektes nur die benötigten Behälter erstellt werden. Oder es könnte auch so automatisiert werden, dass die Standardwerte für die Baskets Layerübergreifend beibehalten werden.
INTERLIS 2.3;
MODEL OrtsplanungV1_1 (en) AT "mailto:localhost" VERSION "2021-07-20" =
IMPORTS LocalisationCH_V1,GeometryCHLV95_V1;
DOMAIN
CHSurface = SURFACE WITH (STRAIGHTS) VERTEX GeometryCHLV95_V1.Coord2 WITHOUT OVERLAPS > 0.001;
TOPIC Konstruktionen =
CLASS Gebaeude =
Name : MANDATORY TEXT*99;
Geometrie : MANDATORY OrtsplanungV1_1.CHSurface;
END Gebaeude;
CLASS Strasse =
Type : MANDATORY TEXT*99;
END Strasse;
ASSOCIATION Gebaeude_Strasse =
Strasse -- {0..1} Strasse;
Gebaeude -- {0..*} Gebaeude;
END Gebaeude_Strasse;
END Konstruktionen;
END OrtsplanungV1_1.
MODEL Erweiterte_OrtsplanungV1_1 (en) AT "mailto:localhost" VERSION "2021-07-20" =
IMPORTS OrtsplanungV1_1;
TOPIC Gewerbe EXTENDS OrtsplanungV1_1.Konstruktionen =
OID AS INTERLIS.UUIDOID;
CLASS Gebaeude (EXTENDED) =
Firma : TEXT*99;
END Gebaeude;
END Gewerbe;
TOPIC Freizeit EXTENDS OrtsplanungV1_1.Konstruktionen =
OID AS INTERLIS.UUIDOID;
CLASS Gebaeude (EXTENDED) =
Unterhaltungsart : TEXT*99;
END Gebaeude;
END Freizeit;
TOPIC Industrie EXTENDS Erweiterte_OrtsplanungV1_1.Gewerbe =
OID AS INTERLIS.UUIDOID;
CLASS Gebaeude (EXTENDED) =
Sektion : TEXT*99;
END Gebaeude;
END Industrie;
END Erweiterte_OrtsplanungV1_1.
opengisch/QgisModelBaker#665 opengisch/QgisModelBaker#461 opengisch/QgisModelBaker#671 opengisch/QgisModelBaker#663
Mockups: https://excalidraw.com/#json=FjqlyfvjijdwRbNEjxgI1,dohIIOwTl-OksdUwt2-f2g