Styliser la couche de polygone dissoute avec le générateur de géométrie QGIS?

8

Le générateur de géométrie QGIS semble être un bon moyen de garder les données intactes tout en permettant des visualisations créatives.

J'ai une couche de polygones de tesselation que je voudrais styliser comme une surface continue sans bordures internes.

Pour dissoudre un certain nombre de polygones dans Spatialite, j'utiliserais la fonction UNION, mais Union dans le générateur de géométrie ne donne pas de résultat, c'est-à-dire:

 union( $geometry, $geometry )

Est-il donc possible d'utiliser le générateur de géométrie pour afficher une couche de polygones dissoute, et si oui, comment?

hexamon
la source

Réponses:

7

Vous pouvez maintenant le faire avec le générateur de géométrie dans QGIS 2.99 / 3.0 en utilisant buffer(collect($geometry),0)dans le générateur d'expression.

La nouvelle collect()fonction d'agrégation rassemble toutes les géométries d'entités dans un multipolygone; buffer()le convertit en un seul polygone à styliser comme tel.

she_weeds
la source
Existe-t-il un moyen de faire ce résultat sans collecter mais comme une fusion? Si vous testez cela sur un polygone avec 2 entités et un remplissage simple semi-transparent, vous remarquerez que l'expression est effectuée deux fois et le remplissage sera deux fois plus opaque que vous l'avez désigné.
James B
Réalisé que cela est possible avec le style de polygone inversé ne nécessitant donc aucun code =)
James B
5

J'ai essayé d'utiliser le générateur de géométrie sans succès et j'ai décidé d'une couche virtuelle et d'une requête SQL

SELECT st_union(geometry) from layer_name

Vous devez remplacer "nom_couche" par votre nom de couche.

La couche virtuelle résultante est basée sur la couche source et ne créera aucune nouvelle donnée.

Ce n'est pas le style du générateur de géométrie, mais cela devrait résoudre votre problème.

Klas Karlsson
la source