Stylen der Polygonebene, wie sie mit dem QGIS-Geometriegenerator aufgelöst wurde?

8

Der QGIS-Geometriegenerator scheint eine gute Möglichkeit zu sein, Daten intakt zu halten und gleichzeitig einige kreative Visualisierungen zu ermöglichen.

Ich habe eine Schicht tesselierender Polygone, die ich als durchgehende Oberfläche ohne innere Ränder stylen möchte.

Um eine Reihe von Polygonen in Spatialite aufzulösen, würde ich die UNION-Funktion verwenden, aber Union im Geometriegenerator liefert kein Ergebnis, dh:

 union( $geometry, $geometry )

Ist es also möglich, mit dem Geometriegenerator eine aufgelöste Polygonebene anzuzeigen, und wenn ja, wie?

Hexamon
quelle

Antworten:

7

Sie können dies jetzt mit dem Geometriegenerator in QGIS 2.99 / 3.0 mithilfe buffer(collect($geometry),0)des Ausdrucksgenerators tun .

Die neue collect()Aggregatfunktion sammelt alle Merkmalsgeometrien in einem Multipolygon. buffer()konvertiert es in ein einzelnes Polygon, das als solches gestaltet werden soll.

she_weeds
quelle
Gibt es eine Möglichkeit, dieses Ergebnis ohne Sammeln, sondern als Zusammenführung zu erzielen? Wenn Sie dies an einem Polygon mit 2 Merkmalen und einer halbtransparenten einfachen Füllung testen, werden Sie feststellen, dass der Ausdruck zweimal ausgeführt wird und die Füllung doppelt so undurchsichtig ist, wie Sie es angegeben haben.
James B
Es wurde erkannt, dass dies mit dem invertierten Polygonstil möglich ist, sodass kein Code erforderlich ist =)
James B
5

Ich habe versucht, den Geometriegenerator ohne Erfolg zu verwenden, und mich für eine virtuelle Ebene und eine SQL-Abfrage entschieden

SELECT st_union(geometry) from layer_name

Sie müssen "Ebenenname" durch Ihren Ebenennamen ersetzen.

Die resultierende virtuelle Schicht basiert auf der Quellenschicht und erstellt keine neuen Daten.

Es ist nicht der Geometriegeneratorstil, aber er sollte Ihr Problem beheben.

Klas Karlsson
quelle