Saya ingin melambangkan poligon tanpa mengubahnya menjadi garis. Saya memiliki fitur poligon (ditetaskan dan dibatasi oleh garis merah) yang bertepatan di bagian atas dan bawah garis pantai (garis biru). Saya ingin melambangkan garis poligon hanya di dua sisi dan ingin mengeluarkan warna merah di bagian atas dan bawah.
Saya ingin melihat hasil akhirnya seperti ini.
Jawaban:
Saya sedikit kesulitan dengan
Geometry generator
@GSienko. Untuk bagian persimpangan, Anda juga dapat menggunakan fungsi bawaanaggregate
. Saya juga menggunakansegment_to_lines
fungsi yang mengubah poligon menjadi garis.atau
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.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.
sumber
Coba gunakan plugin refFunction di dalam generator geometri.
Anggapan. 2 lapisan - satu garis sebagai garis, dan poligon sebagai poligon.
Gaya poligon seperti itu:
geomintersect akan membuat kueri spasial antara lapisan poligon dan lapisan garis, dan mengembalikan geometri dari perpotongan keduanya, dalam kasus kami, dua batas poligon. Langkah selanjutnya adalah membuat perbedaan dengan batas poligon. Saya tidak tahu apakah Anda akan memiliki lubang di dalam atau tidak, maka exterior_ring () hanya akan mengembalikan perbatasan eksterior.
Hasil akhir:
Batasan - geomintersect akan memeriksa persimpangan hanya untuk satu poligon. Saya mengelola batasan itu dengan membuat layer poligon menjadi satu multipoligon besar, misalnya dengan lapisan virtual untuk style border.
sumber
Bagaimana kalau menambahkan garis putih di bawah garis biru di lapisan lain, yang memiliki lebar sama dengan garis merah? Jika Anda menempatkan garis biru di atas lapisan poligon, garis putih akan mengaburkan garis merah.
Ini tentu saja mengasumsikan bahwa Anda memiliki latar belakang putih seperti pada contoh Anda, dan bahwa Anda baik-baik saja dengan beberapa persilangan juga dikaburkan.
Ini adalah hasil tes cepat saya:
Pengaturan untuk garis biru:
sumber
Penafian: Jawaban ini tidak akan berfungsi jika Anda memiliki banyak poligon
Yang bisa Anda lakukan adalah mencari tahu simpul mana yang membentuk empat sudut poligon yang ingin Anda tarik garisnya, dan kemudian gunakan yang ada di MAKE_LINE () yang berfungsi untuk menggambar garis:
Untuk menemukan node mana yang Anda butuhkan:
POINT_N($geometry, 1)
untuk menampilkan simpul pertama sebagai titikUntuk menggambar garis:
MAKE_LINE(POINT_N($geometry, *first point*), POINT_N($geometry, *second point*)
Selanjutnya Anda hanya menambahkan simbologi mengisi pola garis normal di bawah dua generator geometri
sumber