Die Verwendung von bedingten Ausdrücken in Ihrem Vermessungsprojekt kann eine hervorragende Möglichkeit sein, die Genauigkeit Ihrer Datenerhebung vor Ort zu verbessern. QGIS sind ein leistungsstarkes Werkzeug, um die Benutzerfreundlichkeit Ihrer Vermessung vor Ort zu optimieren. Dank der Flexibilität von QGIS gibt es viele Möglichkeiten, dieses Werkzeug einzusetzen, aber wir zeigen Ihnen zunächst einige Beispiele, um Ihnen den Einstieg zu erleichtern.
Beispiel 1 – Felder mit Ausdrücken einschränken
Manchmal können komplexe Erhebungsformulare für Erheber, die Daten auf den kleineren Bildschirmen ihrer Geräte erfassen, unübersichtlich oder verwirrend wirken. Eine Möglichkeit, Ihre Formulare übersichtlicher zu gestalten, besteht darin, mithilfe von Ausdrücken nur die Felder anzuzeigen, auf die der Erheber Zugriff benötigt.
Nehmen wir beispielsweise an, Sie führen eine Immobilienerhebung durch, bei der je nach Art der Immobilie bestimmte Felder ausgefüllt werden müssen. Wenn der Nutzer durch jeden Abschnitt des Formulars scrollen muss, bis er die erforderlichen Felder findet, kann dies für die Erheber verwirrend und zeitaufwendig sein. Stattdessen können Sie bedingte Ausdrücke verwenden, um je nach Art der zu erfassenden Immobilie nur die erforderlichen Felder anzuzeigen.
Beginnen wir mit einem einfachen Beispielprojekt für unsere Grundstücksvermessung. Wir haben eine Hintergrundkarte und eine Punkt-Ebene namens „survey“, um die Informationen zu jedem Grundstück zu erfassen. Die Tabelle für die Ebene „survey“ sieht wie folgt aus:
Eine Möglichkeit, die Nutzung dieses Formulars für den Gutachter zu vereinfachen, besteht darin, die Felder mithilfe des Drag-and-Drop-Designers in Registerkarten zu organisieren. Wir können unsere Umfrage in drei Registerkarten unterteilen: „Immobilien“, „Gewerbe“ und „Wohngebäude“, wobei auf der ersten Registerkarte ein Feld für die Angaben zum Gutachter vorgesehen ist:

Nachdem die Felder nun organisiert sind, können wir einen weiteren Schritt unternehmen, um das Formular noch besser an Benutzereingaben anzupassen. Wir können einen Ausdruck verwenden, um die Registerkarten „Gewerbe“ und „Wohnen“ auszublenden, bis der Benutzer die Art der Immobilie ausgewählt hat. Wählen Sie dazu die Registerkarte aus und legen Sie im Feld „Sichtbarkeit der Steuerung nach Ausdruck“ einen Ausdruck fest, um die Registerkarte ein- oder auszublenden.
Verwenden Sie für die Registerkarte „Business“ Folgendes:
„Typ“ = 'Geschäft'Und für die Registerkarte „Wohngebäude“ verwende:
„Typ“ = 'Wohngebäude'
Wenn der Benutzer nun Daten in das Feld eingibt, wird ihm zunächst nur die Registerkarte „Eigenschaft“ angezeigt, bis er eine Option für das Feld „Typ“ auswählt. Es empfiehlt sich außerdem, für das Feld „Typ“ die Einschränkung „Nicht null“ festzulegen, damit der Benutzer daran denkt, einen Wert für die Eigenschaft einzugeben – andernfalls weiß er möglicherweise nicht, dass weitere Informationen erfasst werden müssen!
*Video einfügen*
Beispiel 2 – Bearbeitungen mit Ausdrücken einschränken
Nachdem wir nun unsere Erfassungsoberfläche um einige Ausdrücke erweitert haben, können wir eine fortgeschrittenere Methode ausprobieren, um einzuschränken, wer Elemente in unserem Projekt bearbeiten darf. In unserem Beispiel möchten wir, dass Vermessungsingenieure nur Einträge bearbeiten können, die von ihrem Vermessungsteam erstellt oder diesem zugewiesen wurden.
Wir verfügen bereits über ein Feld zur Erfassung des Benutzernamens des Vermessers und des ihm zugewiesenen Vermessungsteams. Wir ergänzen dies durch eine nicht-räumliche Tabelle, in der der Benutzername jedes Vermessers und sein Team aufgeführt sind. Diese sieht wie folgt aus:
In unserer Erhebungstabelle ist das Feld „surveyor“ als nicht editierbar festgelegt und verwendet den Standardwertausdruck @mm_username; außerdem ist das Feld so eingestellt, dass bei einer Aktualisierung der Standardwert übernommen wird.

Als Nächstes richten wir das Feld „survey_team“ als Text-Widget mit folgendem Ausdruck für den Standardwert ein:
Attribut(get_feature('surveyors','username',@mm_username), 'team')In diesem Ausdruck gehen wir von innen nach außen vor und verwenden die Funktion `get_feature()`, um das Objekt in der Tabelle `surveyors` abzurufen, dessen Benutzername mit dem `@mm_username` des aktuellen Benutzers übereinstimmt. Anschließend verwenden wir die Funktion `attribute()`, um den Wert des Feldes `team` für dieses Objekt zurückzugeben. Dieser Standardwert wird nur einmal beim Anlegen des Objekts zugewiesen. Wir deaktivieren die Bearbeitung für dieses Feld, oder Sie können einen Ausdruck verwenden, um nur einem Admin-Benutzer die Bearbeitung des Features zu erlauben, beispielsweise mit einem Ausdruck wie (ersetzen Sie den Text in Klammern durch die Benutzernamen der Admin-Benutzer):
@mm_username IN ('list', 'of', 'admin', 'Benutzernamen')
In diesem Beispiel fügen wir der Umfrage-Ebene außerdem ein boolesches Feld namens „can_edit“ hinzu. Wir konfigurieren dieses Feld mit einer Ausdrucksbeschränkung, die verhindert, dass Benutzer Änderungen an einem Objekt speichern können, wenn sie nicht zum Umfrage-Team gehören, das das Objekt erstellt hat oder dem das Objekt zugewiesen ist.
Zunächst legen wir den Standardwert des Feldes „can_edit“ mit dem folgenden Ausdruck fest:
attribute(get_feature('surveyors', 'username', @mm_username),'team') ILIKE "survey_team"
ODER
@mm_username IN ('ersetzen Sie dies durch','admin','users')Der obige Ausdruck verwendet dieselbe Funktion, die auch für den Standardwert in „survey_team“ verwendet wird, um die Teamzugehörigkeit des aktuellen Benutzers abzurufen, und prüft, ob diese mit dem Wert des Umfrage-Teams übereinstimmt, das dem Objekt zugewiesen ist. Die Anweisung nach dem OR-Operator prüft, ob der Benutzer ein Administrator ist. Ist der aktuelle Benutzer ein Administrator oder Mitglied des mit dem Feature verbundenen Teams, wird der Wert des Feldes auf „true“ gesetzt; gehört er keiner dieser Gruppen an, wird er auf „false“ gesetzt. Stellen Sie sicher, dass der Standardwert so eingestellt ist, dass er bei einer Aktualisierung angewendet wird.
Als Nächstes erstellen wir eine ausdrucksbasierte Einschränkung, damit das Element nur gespeichert werden kann, wenn der Wert des Feldes „can_edit“ auf „true“ gesetzt ist :
"can_edit" = trueStellen Sie abschließend sicher, dass die Bearbeitung des Feldes deaktiviert ist. Ihre Einstellungen sollten in etwa so aussehen:

In unserem Beispiel sehen wir nun, dass dieser Benutzer, der zum roten Umfrage-Team gehört, nur die diesem Team zugewiesenen Elemente bearbeiten kann:
*Video 2 einfügen*
Viele weitere Anwendungsmöglichkeiten für bedingte Einstellungen
Dies sind nur einige Beispiele dafür, wie Sie Bedingungen in Ihrem Projekt nutzen können, um den Arbeitsablauf zu optimieren und die Datenqualität sicherzustellen. Der Einsatz von Bedingungen eröffnet Ihnen weitere Anpassungsmöglichkeiten, wie beispielsweise bedingte Symbologie, zeitliche Einschränkungen, das automatische Ausfüllen von Feldern auf Grundlage bestimmter Werte und vieles mehr. Wenn Sie das volle Potenzial von QGIS ausschöpfen, QGIS Sie Ihr Mergin Maps optimal nutzen!