Ist es möglich, auf den QGIS Map Canvas als Variable oder Ausdruckswert zuzugreifen, der im Feldrechner oder in der Beschriftungs-Engine verwendet wird?
(dh damit Sie einen Ausdruck erstellen können, der Features auswählt / abfragt, die in einer bestimmten Ansicht der Leinwand sichtbar / vorhanden sind, auf ähnliche Weise, wie der Druckkomponist "die Legende nach Karteninhalt filtert")
(QGIS 2.18.1 [osgeo4w], win7)
BEARBEITEN:
Möglicher (fiktiver) Anwendungsfall 1 - In einer Ebene befinden sich 50 Polygone. Derzeit sind in der aktuellen Ansicht der Kartenfläche 20 Polygone sichtbar. Ich möchte das Blau des Polygons stylen, wenn <= 25 Polygone sichtbar sind oder Gestalte sie grün, wenn> = 25 Polygone sichtbar sind.
Möglicher (fiktiver) Anwendungsfall 2 - In einer Ebene befinden sich 50 Polygone. Derzeit sind 10 Polygone sichtbar, 5 mit dem Attributwert 'Haus' im Feld / der Spalte "Gebäudetyp" und 5 mit dem Wert von 'Garage' im Feld / Gebäudetyp "Gebäudetyp", sichtbar in der aktuellen Ansicht des Kartenbereichs. Rückgabe: Der Wert, der der Anzahl der Polygone entspricht, die Garagen sind ... Antwort = 5.
quelle
is_selected
Funktion , mit der Sie feststellen können, ob ein Feature ausgewählt ist. Es könnte sich lohnen, mehr Details darüber zu erfahren, was Sie tun möchten.Antworten:
Ein Werkzeug, das über die derzeit verfügbaren Variablen hinausgeht, ist ein benutzerdefinierter Python-Ausdruck.
Meines Wissens ist dies das einzige derzeit verfügbare Tool, um auf die Kartenfläche so zuzugreifen, wie Sie diese Informationen beschreiben und in Ausdrücken verwenden.
Um Ihren fiktiven Anwendungsfall 1 zu lösen, können Sie Folgendes tun:
Anschließend können Sie regelbasierte Stile mithilfe von Filtern wie den folgenden einrichten:
Die vollständige Canvas-API finden Sie hier .
quelle