Saya telah menggambar peta aliran OD menggunakan generator geometri QGIS, menggunakan ekspresi berikut:
make_line( centroid( $geometry ),
centroid( geometry( get_feature( 'Layer2', 'Attribute1', attribute(
$currentfeature, 'Attribute2') ) ) ) )
Saya mendapatkan semuanya dengan baik, mendefinisikan lebar garis saya sesuai dengan atribut.
Tetapi ketika saya memperbesar ke "hub", garis yang terhubung ke tempat di luar kanvas peta tidak muncul. Saya kira itu karena fitur tidak seharusnya muncul di peta.
Saya mencoba untuk menghapus centang opsi "Klip fitur ke tingkat kanvas" di menu lanjutan, baik di "generator Geometri" dan di tingkat "Line", tetapi masih tidak muncul.
Saya ingin semua baris saya muncul, bahkan ketika diperbesar pada hub.
qgis
symbology
mapcanvas
geometry-generator
mamouthautapis
sumber
sumber
Jawaban:
Masalahnya di sini adalah bahwa tidak ada data aktual yang mengatakan "ada garis di sini". Ekspresi Anda adalah bagian dari Styling Lapisan, dan hanya ditemui dalam proses rendering ketika dua poin yang berlaku juga diberikan.
Coba gunakan Jarak ke alat hub terdekat , ditemukan di kotak alat pemrosesan di bawah Alat analisis vektor. Saya perhatikan bahwa Anda memilih poligon tertentu untuk jari-jari Anda, dan mengatur garis sesuai dengan atribut lainnya. Ini mungkin, tetapi Anda harus melakukan beberapa hal untuk mempersiapkannya. Untungnya, alat ini secara otomatis menggunakan centroid ketika input poligon dipilih.
Output yang dihasilkan mempertahankan semua atribut dari input layer 'SPOKES', sehingga atribut yang dibutuhkan untuk style line akan tetap ada. Sebagai layer vektornya sendiri, garis-garis akan tetap terlihat di semua level zoom, terlepas dari visibilitas dari kedua titik akhir.
Jika Anda merasa nyaman dengan Graphical Modeler, Anda bahkan dapat membangun langkah-langkah ini dalam satu proses tunggal agar tidak mengacaukan ruang kerja Anda dengan lapisan yang tidak perlu.
sumber
Temukan solusi berikut: Gunakan lapisan virtual tambahan alih-alih generator geometri untuk menampilkan garis.
Definisi lapisan virtual:
(geometri asli dapat dirujuk menggunakan
m.geometry
)Untuk memastikan lapisan virtual di-refresh ketika my_layer diedit, buka properti layer | dependensi dan pastikan my_layer dicentang (yang diklik secara default).
sumber