Gunakan kalkulator lapangan untuk memeriksa persimpangan

Dec 03 2020

Tujuan utama

Saya berencana untuk mengambil atribut dari lapisan menggunakan kalkulator lapangan di mana mereka berpotongan dengan geometri.

Langkah saat ini

Memeriksa apakah arus $geometryberpotongan dengan lapisan yang diinginkan.

Apa yang saya coba

intersects($geometry,collect_geometries('Layer'))- dan variasi map_get. Karena saya baru belajar bahwa intersectsgeometri yang diketahui harus diberikan, sementara saya ingin memeriksa JIKA ada geometri pada lapisan, saya sebenarnya bingung. Saya tidak tahu cara memeriksa persimpangan menggunakan kalkulator lapangan.

Jika ini tidak memungkinkan menggunakan kalkulator lapangan, mungkinkah Python?

Jawaban

4 Babel Dec 03 2020 at 23:03

Anggaplah Anda memiliki lapisan dengan poligon yang berisi atribut "nama": pada tangkapan layar di bawah, bidang nama ini memiliki nilai A, B, C, D, E dan F (poligon diberi label).

Kami selanjutnya memiliki lapisan garis dan kami ingin mendapatkan nama poligon yang garisnya berpotongan. Sejak QGIS 3.16 (lihat log perubahan visual ; untuk versi QGIS yang lebih lama mungkin Plugin RefFunctions yang direferensikan di sana dapat membantu), ada ekspresi-hamparan baru. Kita dapat menggunakan salah satunya untuk memberi label pada garis dengan nama poligon yang dipotongnya. Dengan cara yang sama, ekspresi tersebut dapat digunakan dalam kalkulator bidang untuk menghasilkan bidang baru (bahkan bidang virtual untuk penghitungan dinamis):

array_to_string ( 
   overlay_intersects ( 
      'Polygons', 
      name
    ) 
)