Vai al contenuto

Come aggiungere un unico contorno ad un layer poligonale↵

Per aggiungere un unico contorno allo stile di un layer poligonale con elementi adiacenti (vedi immagine sotto), solitamente si duplica il layer e su questo si cambia il tema per ottenere unico contorno (per esempio usando lo stise Elementi fusi). In questo esempio vedremo come evitare di duplicare il layer e di creare, tramite espressioni, un unico contorno complessivo o raggruppato secondo un attributo.

Per ottenere l'unico contorno occorre aggiungere un layer nell'impostazione del simbolo e modificarlo in Generatore Geometria, come espressione utilizzare:

buffer(collect($geometry),0)

toglier lo sfondo e lasciare solo il contorno.

nel caso volessimo raggruppare per un attributo ("COD_PROV"), ecco un esempio:

espressione utilizzata:

buffer(collect($geometry,"COD_PROV"),0)

ma se volessimo solo il contorno interno tra i poligoni adiacenti, allora occorre utilizzare la seguente espressione:

DIFFERENCE(
    boundary(collect($geometry)), 
    boundary( buffer(collect($geometry),0))
            )
oppure:

intersection(
    aggregate(
      layer:=@layer_name,
      aggregate:='collect',
      expression:=$geometry,
      filter:="cod_prov" != attribute(@parent,'cod_prov')),
    $geometry)

dove COD_PROV è un attributo del layer (vedi tweet: https://twitter.com/bogind2/status/1538381147436204032)

ottenendo:


Funzioni e variabili utilizzate: