Saya telah melihat banyak pertanyaan yang melibatkan pemisahan garis dengan bantuan lapisan titik.
Saya ingin membagi garis menjadi pecahan dari panjangnya.
Misalnya, saya memiliki 400
panjang garis meter, saya ingin membaginya menjadi empat baris masing-masing sepanjang 100 meter.
Ada modul rumput v.split
, tapi saya mendapatkan pesan kesalahan ketika saya memulainya dari kotak alat qgis:
*"TypeError: object of type 'NoneType' has no len()"*
Jadi saya tidak yakin apakah saya bisa bekerja jika ini akan menjadi solusi.
qgis
line
digitizing
Gilles
sumber
sumber
Jawaban:
Fungsi v.split.length dari GRASS harus melakukan apa yang Anda inginkan dengan memisahkan garis menjadi segmen yang sama yang ditentukan oleh pengguna tanpa perlu layer titik. Berikut adalah contoh sederhana garis lurus (ini juga berfungsi pada garis tidak lurus dan banyak garis):
Saya menambahkan kolom untuk menghitung panjangnya menggunakan
$length
dalam ekspresi:Menggunakan fungsi v.split.length dari GRASS melalui Processing Toolbox , saya memilih untuk membagi garis menjadi segmen 25m yang akan menghasilkan total 4 bagian:
Saya kemudian memperbarui kolom Panjang dari lapisan output dan menggunakan perintah yang sama seperti di atas untuk menghitung ulang panjang:
Tidak yakin mengapa Anda menerima kesalahan, bisakah Anda membagikan lapisan garis Anda kepada orang-orang untuk diuji?
sumber
Mari kita asumsikan ada lapisan polyline yang disebut
"lines"
.Saya dapat menyarankan menggunakan "Lapisan Virtual" melalui
Layer > Add Layer > Add/Edit Virtual Layer...
Ada beberapa kemungkinan kasus:
Kasus 1. Memisahkan garis menjadi segmen yang sama, pada dasarnya panjang yang sama yang ditentukan oleh pengguna.
Dengan Permintaan berikut, dimungkinkan untuk mencapai hasil. Untuk menambah / mengurangi panjang segmen, harap sesuaikan
1000 AS step_length
in-- configurations
.Output Virtual Layer akan terlihat sebagai berikut
Catatan: Jika 'delta' (misalnya yang terakhir segmen terpendek) tidak harus dimasukkan, kemudian masukkan
WHERE sec_length >= step_length
dalam-- query
, lihat di bawahKasus 2. Membagi garis menjadi sejumlah segmen tertentu
Dengan Permintaan berikut, dimungkinkan untuk mencapai hasil. Untuk menambah / mengurangi jumlah segmen, harap sesuaikan
8 AS sections
in-- configurations
.Output Virtual Layer akan terlihat sebagai berikut
sumber