Ketika poin tumpang tindih, ada properti ini yang memungkinkan untuk secara otomatis menampilkan banyak dari mereka secara terpisah di sekitar tempat mereka berada, yang disebut 'Point displacement'. Tapi itu tidak bekerja untuk garis, meskipun begitu menurut saya cukup layak secara konseptual untuk mencapai sesuatu seperti itu:
Saya benar-benar perlu melihat garis differents yang pada kenyataannya semua berada di tempat yang sama (saya bekerja di jaringan telekomunikasi). Satu-satunya cara saya melihat untuk saat ini adalah benar-benar membuat garis yang berbeda seperti pada gambar di atas, sehingga menciptakan kesalahan spasial.
Saya menggunakan QGIS 2.14.
qgis
symbology
style
visualisation
qgis-custom-function
GuiOm Clair
sumber
sumber
Jawaban:
Saya mengusulkan pendekatan yang hanya berulang ke generator geometri dan fungsi kustom.
Sebelum memulai, saya ingin menggarisbawahi bahwa saya akan memusatkan perhatian pada penjelasan tentang hal-hal minimal yang harus dilakukan untuk mereproduksi hasil yang diinginkan: ini berarti bahwa beberapa parameter kecil lainnya (seperti ukuran, lebar dan sebagainya) harus mudah disesuaikan oleh Anda untuk menyesuaikan kebutuhan Anda dengan lebih baik.
Oleh karena itu, solusi ini berfungsi baik untuk Sistem Referensi Geografis dan Proyeksi: sebagai berikut, saya berasumsi menggunakan CRS yang diproyeksikan (yaitu satuan pengukuran adalah meter), tetapi Anda dapat mengubahnya sesuai dengan CRS Anda.
Konteks
Mari kita asumsikan mulai dari layer vektor linestring ini yang mewakili kabel (label mewakili jumlah kabel yang tumpang tindih (bertepatan)):
Larutan
Pertama, pergi ke
Layer Properties | Style
dan kemudian pilihSingle symbol
penyaji.Dari
Symbol selector
dialog, pilihGeometry generator
tipe layer simbol danLinestring / MultiLinestring
tipe geometri. Kemudian, klik padaFunction Editor
tab:Kemudian, klik
New file
dan ketikdraw_wires
sebagai nama fungsi baru:Anda akan melihat bahwa fungsi baru telah dibuat dan terdaftar di sisi kiri dialog. Sekarang, klik pada nama fungsi dan ganti default
@qgsfunction
dengan kode berikut (jangan lupa untuk menambahkan semua perpustakaan yang dilampirkan di sini):Setelah Anda selesai melakukannya, klik
Load
tombol dan Anda akan dapat melihat fungsi dariCustom
MenuExpression
dialog.Sekarang, ketikkan ungkapan ini (lihat gambar di bawah ini sebagai referensi):
Anda baru saja menjalankan fungsi yang mengatakan, dengan cara imajiner:
Satu-satunya hal yang perlu Anda ubah adalah nilai dari dua parameter pertama seperti yang Anda inginkan, tetapi jelas dengan cara yang masuk akal (biarkan parameter fungsi lainnya sebagaimana disediakan).
Terakhir, klik
Apply
tombol untuk menerapkan perubahan.Anda akan melihat sesuatu seperti ini:
seperti yang diharapkan.
EDIT
Menurut permintaan spesifik yang diajukan oleh OP dalam komentar:
Saya sedikit mengedit kode. Fungsi berikut harus mengembalikan hasil yang diharapkan:
sumber
layer=iface.activeLayer()
dan kemudianprint layer.wkbType()
. KlikRun
: yang merupakan nilai dari nomor yang dicetak?