Saya memiliki lapisan dengan banyak bangunan sebagai titik pada peta. Salah satu atribut dari setiap bangunan adalah "download_speed"
.
Saya ingin meletakkan kotak persegi (100 x 100 meter) di atas peta. Kotak harus berperilaku sebagai berikut:
Alun-alun hanya akan terlihat jika ada setidaknya satu bangunan di alun-alun.
Kotak harus berwarna merah jika tidak ada bangunan di alun-alun yang memiliki di
"download_speed"
atas 10 (Mbit / dtk).Alun-alun harus berwarna abu-abu jika beberapa bangunan di alun-alun memiliki di
"download_speed"
atas 10 (Mbit / s)Kotak harus berwarna hitam jika semua bangunan di alun-alun memiliki di
"download_speed"
atas 10 (Mbit / s)
Saya seorang pemula yang lengkap tentang QGIS (dan GIS-software umumnya), tetapi pengguna berpengalaman Python dalam ilmu data.
Hasil akhirnya akan terlihat seperti gambar di bawah ini:
sumber
Jawaban:
Beberapa waktu lalu saya menulis posting untuk membuat kotak vektor poligon:
Cara menghasilkan kotak vektor poligon di QGIS menggunakan Python
yang mengilhami saya untuk mengusulkan solusi.
Pendekatan saya berulang ke skrip khusus dari Toolbox Pemrosesan (tolong, lihat posting di atas jika Anda tidak tahu bagaimana melakukannya).
Sebagai parameter input, diperlukan:
Dengan asumsi bahwa kecepatan unduhan disimpan di
"download_speed"
lapangan, Anda dapat menggunakan kode ini:Sebagai pengguna Python yang berpengalaman, Anda harus dapat dengan mudah memahami kode di atas dan menyesuaikannya dengan kebutuhan spesifik Anda (jika tidak, beri tahu saya jika Anda memerlukan penjelasan). Satu hal lagi: Saya tidak menguji kondisional untuk penetapan warna secara mendalam, tetapi itu seharusnya menjadi tugas yang mudah bagi Anda.
Menguji kode pada poin acak ini:
Saya mendapatkan hasil ini:
yang tampaknya menjadi apa yang Anda cari.
sumber