Saya sedikit kesulitan dengan Geometry generator
@GSienko. Untuk bagian persimpangan, Anda juga dapat menggunakan fungsi bawaan aggregate
. Saya juga menggunakan segment_to_lines
fungsi yang mengubah poligon menjadi garis.
difference(
segments_to_lines($geometry),
aggregate(
layer:= 'line',
aggregate:='collect',
expression:= $geometry,
filter:=intersects($geometry, geometry(@parent))
)
)
atau
difference(
segments_to_lines($geometry),
aggregate('line','collect',$geometry,intersects($geometry, geometry(@parent)))
)
Jika Anda memiliki beberapa poligon "tidak terkait" dengan garis, Anda dapat menambahkan if
kondisi untuk persimpangan. Jika lapisan berpotongan, maka perbedaan diterapkan untuk simbologi, jika tidak seluruh geometri diterapkan.
if(
intersects(
segments_to_lines($geometry),
aggregate('line','collect',$geometry,intersects($geometry, geometry(@parent)))
),
difference(
segments_to_lines($geometry),
aggregate('line','collect',$geometry,intersects($geometry, geometry(@parent)))
),
segments_to_lines($geometry)
)
sunting : Menggunakan generator baris dengan cara ini memiliki titik lemah - Anda harus menangani simbol legenda, karena membuat garis melalui poligon (bukan sebagai perbatasan). Namun Anda masih dapat menduplikasi layer, mengatur isian sederhana dan menggunakannya untuk legenda.