Membuat garis paralel pada jarak tertentu dari garis yang merupakan bagian dari sebuah shapefile

11

Saya menggunakan QGIS 2.18. Saya memiliki shapefile yang berisi banyak baris. Setelah memproses pemrosesan data tertentu, saya perlu menggambar garis paralel pada jarak yang berbeda dari garis yang ada. Misalnya saya punya 32 garis di shapefile yang ada. Saya ingin menggambar garis paralel pada jarak 50, 100, 170, 500.400 dari garis ID no. 3, 6,20,25,31 dalam sekali jalan. Apakah ada metode atau plugin di QGIS untuk melakukan hal yang sama?

Jitendra
sumber

Jawaban:

6

Anda dapat menggunakan plugin QAD , yang menawarkan perintah seperti CAD di QGIS.

Ini hanya bekerja dengan Sistem Koordinat yang Diproyeksikan (jadi Anda perlu memproyeksikan data Anda sebelum menggunakannya) dan dengan mode pengeditan diaktifkan (klik kanan pada layer dan pilih Toggle Editing).

Untuk kasus Anda, Anda perlu mengklik tombol Offset :

masukkan deskripsi gambar di sini

dan ikuti instruksi yang akan muncul di jendela teks QAD (persis seperti di AutoCAD):

masukkan deskripsi gambar di sini

Misalnya, ini adalah output saat menggunakan offset yang berbeda untuk dua fitur berbeda:

masukkan deskripsi gambar di sini

mgri
sumber
Terima kasih untuk balasan Anda. Apakah ada metode atau plugin lain untuk melakukan tugas ini tanpa memproyeksikan data?
Jitendra
Saya menggunakan pendekatan dengan data yang diproyeksikan karena sepertinya Anda berurusan dengan meter ( jarak 50, 100, 170, 500.400 .. ). Mengubah proyeksi sangat sederhana: klik kanan pada layer, lalu Save asdan akhirnya pilih Projected Coordinate System. Setelah Anda melakukan offset, Anda dapat kembali ke Sistem Koordinat Geografis dengan operasi terbalik ... Itu harus benar.
mgri
Tanpa memproyeksikan data, Anda perlu berurusan dengan sudut, bukan meter dan saya tidak tahu apakah itu menjadi lebih mudah bagi Anda ...
mgri
Alat QAD berfungsi dengan baik. Tapi saya harus mengulangi tugas untuk semua baris di shapefile secara manual. Apakah ada metode untuk membaca line_ID dan jarak ke baris dibaca dari tabel atribut atau file exel atau CSV secara otomatis dan menggambar semua garis paralel secara bersamaan.
Jitendra
Saya tidak tahu alat yang melakukan tugas ini, tetapi saya dapat mencoba memberikan solusi menggunakan PyQGIS ... Mungkinkah ini menarik bagi Anda?
mgri
6

Jika Anda memiliki kolom di tabel atribut Anda yang menentukan jarak antara garis paralel maka metode berikut harus dapat melakukannya dalam satu kali jalan -

Anda dapat menggunakan Single sided buffers (and offset lines) for linesalgoritme GDAL/OGR > [OGR] Geoprocessingdi bawah dalam kotak alat Pemrosesan. Anda harus mengatur Operasi sebagai Kurva Offset dan memasukkan nama kolom yang berisi jarak dalam jarak Buffer (Dalam kasus saya nama kolom adalah lebar ). Anda juga dapat mengatur sisi mana dari garis yang harus ditarik garis paralel dengan memilih sisi Buffer sebagai kanan atau kiri.

masukkan deskripsi gambar di sini

nash
sumber
Terima kasih atas balasannya Saya menggunakan alat OGR sesuai saran Anda tetapi tidak ada yang ditampilkan di shapefile keluaran baru.
Jitendra
Bisakah Anda membagikan sistem proyeksi file bentuk Anda? Screenshot dari tabel atribut layer output mungkin bermanfaat.
nash
Sistem proyeksi shapefile adalah EPSG 4326
Jitendra
Jadi Anda mengerti bahwa garis baru dibuat pada jarak 50.100.170.500 dan 400 yang ada di unit Derajat dan bukan meter (yang saya anggap Anda inginkan?)
nash
Dengan asumsi bahwa Anda menginginkan jarak dalam meter - Anda harus mengubah shapefile Anda dalam sistem proyeksi dengan satuan dalam meter (misalnya sistem proyeksi UTM dari zona yang berlaku). Kemudian jalankan algoritma.
nash
6

Anda dapat menggunakan "v.parallel", Anda dapat menemukan alat ini di kotak alat pemrosesan QGIS.

  1. Pilih baris dengan nomor ID no. 3, 6,20,25,31 Pilih garis

  2. Gunakan "v.parallel", buat garis paralel dari garis yang dipilih. Tetapi, Anda harus melakukan beberapa kali untuk menghasilkan jarak offset yang berbeda (50, 100, 170, 500.400). Ada opsi "Sisi", Anda dapat menetapkan lokasi garis paralel. "v.parallel"

  3. Hasil: garis sejajar (berwarna biru) di sisi kiri dari garis yang dipilih hasil
Cy T
sumber
Terima kasih Cy Y untuk balasannya. Saya telah menggunakan perintah v.parallel tetapi tidak ada yang ditampilkan dalam bentuk keluaran baru.
Jitendra
1
p / s: "v.parallel" perintah hanya bekerja dengan garis lengkung, tidak dapat bekerja dengan garis lurus yang hanya memiliki dua garis simpul.
Cy T