Saya memiliki lapisan garis dan lapisan poligon di QGIS:
Saya ingin menata bagian lapisan garis di luar poligon menggunakan satu gaya dan bagian di dalam menggunakan gaya yang berbeda:
Saya tidak ingin membuat kumpulan data turunan, mis. klip layer garis dan gaya dua bagian.
Ini adalah kasus sederhana tetapi dalam proyek QGIS saya, saya memiliki +30 lapisan jadi saya pikir setiap campuran lapisan akan mengganggu lapisan yang mendasarinya.
Apakah mungkin melakukan hal seperti ini?
Saya tidak ingin menunjukkan lapisan poligon, hanya di sini untuk memvisualisasikan apa yang ingin saya lakukan.
Jawaban:
Bukan solusi yang sempurna tetapi Anda dapat menggunakan Geometry Generator yang menambahkan garis yang divisualisasikan untuk mewakili persimpangan. Anda kemudian dapat mengatur ini untuk tumpang tindih fitur garis asli.
Tambahkan layer simbol baru dengan mengklik tanda plus dan pilih
Geometry generator
tipe layer simbol sebagai. Setel tipe geoemtry keLineString / MultiLineString
dan gunakan ekspresi berikut:Anda perlu menambahkan detail tentang poligon spesifik Anda di mana:
polygonLayer
adalah nama lapisan poligon AndafieldName
adalah nama bidangvalue
adalah nilai fitur dari poligon spesifik AndaPerhatikan bahwa untuk mewarnai garis visual, Anda mungkin perlu melakukannya dari properti Draw effect :
Ini adalah hasilnya (perhatikan bahwa garis visual tidak tumpang tindih dengan garis asli sepenuhnya sehingga saya memodifikasi sedikit offset):
Dan tanpa poligon:
Edit:
Jika Anda ingin ini diterapkan untuk setiap fitur garis yang memotong fitur poligon, buka Function Editor dan gunakan fungsi berikut (ubah nama
polygon example_2
untuk mencocokkan nama lapisan poligon Anda):Klik Muat kemudian buka tab Ekspresi dan ketik
func()
. Semoga hasilnya akan terlihat seperti berikut (menggunakan properti gaya yang sama yang disebutkan di atas):sumber
get_feature
membutuhkan nama bidang dan nilai. Saya hanya memiliki lapisan poligon dan ingin menggunakan semua fitur pada layer itu untuk menutup. Apakah itu mungkin?Geometry Generator
adalah metode yangfunc
dipanggil untuk setiap fitur pada layer di mana ia digunakan untuk styling? Jadi jika lapisan garis saya memiliki 3 fitur, makafunc
disebut 3 kali dan menggambar hasil yang sama 3 kali?func
sekarang seharusnya hanya dipanggil per setiap fitur garis dan hanya akan menggambar hasilnya satu kali (yang tampaknya seperti yang ditunjukkan oleh penanda titik di dalam poligon, sebelum ini disembunyikan di bawah yang saya lewatkan). Terima kasih telah menunjukkan ini :)Memperluas jawaban Joseph , saya menemukan fungsi ini. Ini menjelaskan sistem koordinat yang berbeda dan saya perlu mencari ke dalam dua lapisan masking, sehingga menangani itu juga. Lebih jauh lagi saya ingin bisa menutupi garis-garis di dalam poligon atau garis-garis di luar poligon.
Latihan ini telah menunjukkan kepada saya bahwa QGIS tidak terlalu suka bekerja dengan kumpulan data besar dan algoritme dengan QGIS ini terlalu sering menabrak saya. Saya menduga bahwa penyaji QGIS tidak suka membuat Pembuat Geometri yang memakan waktu.
sumber