Saya telah bermain dengan renderer titik baru di QGIS 3.0.2 dan ini bagus - jauh lebih mudah (dan lebih cepat) daripada harus melakukan pengelompokan sendiri.
Untuk menunjukkan apa yang saya maksud, berikut adalah contoh kecelakaan di jalan di Edinburgh menggunakan data STATS19 dan radius 30m.
Saya tidak dapat menemukan cara mengatur z-order sehingga cluster terbesar diambil di depan cluster yang lebih kecil.
Saya mengetahui variabel @cluster_size - itulah yang saya gunakan untuk skala dan warna simbol. Untuk ini saya menggunakan asisten ukuran dan warna. Saya menghapus penanda font untuk menghapus teks dari setiap cluster.
Ukuran marker didefinisikan sebagai berikut: -
coalesce(scale_exp(@cluster_size, 0, 50, 1, 200, 0.57), 0)
Warna marker didefinisikan sebagai berikut: -
coalesce(ramp_color('custom ramp',scale_linear( @cluster_size, 0, 50, 0, 1), '#000000')
Apa yang saya coba sejauh ini: -
- Level Simbol - Tidak beruntung; tidak dapat memilih nama variabel.
- Render lapisan> Kontrol Rendering Urutan Fitur dan pilih @cluster_size sebagai sortir. Tampaknya tidak berpengaruh.
- Gaya lulus menggunakan @cluster_size karena ekspresi tidak berfungsi.
Adakah yang tahu apakah ini mungkin, atau apakah ini batasan dengan penyaji tertentu ini?
Saya tahu ada banyak cara lain untuk melakukan ini (buffer / spatial join, plugins), tetapi renderer baru harus jauh lebih cepat. Atau apakah saya mengabaikan sesuatu yang sudah jelas? :)
sumber
Jawaban:
Tampaknya seolah-olah implementasi cluster point tidak memungkinkan untuk ini secara asli.
Pertimbangkan renderer cluster titik - pada dasarnya menganalisis dan cluster data titik pada waktu render, membuat lapisan pseudo baru. Lapisan ini tidak dapat diakses oleh pengguna. Seseorang tidak dapat meminta titik berkerumun. Seseorang tidak bisa menghitung atribut @cluster_size .
Renderer titik cluster mewarisi urutan render dari sumber menggunakan urutan rendering fitur Kontrol ( QgsFeatureRequest :: OrderByClause) sehingga membuka kemungkinan beberapa solusi cerdas menggunakan atribut dan ekspresi, namun skema pemesanan tertentu tidak dijamin konsisten.
Sebagai contoh, pertimbangkan layer titik dengan rendering yang dipesan dengan atribut "Latitude". Poin yang lebih utara diberikan di atas poin yang lebih selatan. Penyaji gugus titik tidak memiliki atribut "Latitude" untuk fitur-fitur barunya, meskipun akan mewarisi beberapa kemiripan urutan itu dari sumber. Mungkin ada contoh ketika cluster yang lebih selatan merender di atas cluster yang lebih utara, karena urutan poin asli.
sumber