Apakah ada cara untuk membuat garis dengan kurva yang halus (bezier) di QGIS?

33

Saya pindah dari membuat peta dengan Illustrator ke membuatnya dengan QGIS dan data aktual. Salah satu hal yang belum dapat saya buat kembali di QGIS adalah garis lengkung halus yang bisa saya dapatkan di Illustrator. Saya tidak berbicara tentang Gabung dan Tutup Gaya, tetapi bagaimana seluruh baris ditampilkan.

Saya mencari jawaban yang tidak termasuk mengekspor sebagai SVG ke Illustrator dan menyelesaikan peta di sana.

Juga, saya menyadari bahwa mereka dapat dianggap sebagai representasi yang tidak akurat tetapi, sebagian besar, peta-peta ini adalah untuk memberikan gambaran kepada pengendara tentang di mana mereka berada dan tidak harus harus menjadi representasi yang tepat.

Ini adalah contoh dari apa yang saya maksud: masukkan deskripsi gambar di sini

Brian Kelly
sumber
2
Bagaimana data Anda disimpan? Sebagian besar format data (misalnya shapefile) tidak memungkinkan untuk busur. Saya percaya beberapa database sekarang melakukannya.
Darren Cope

Jawaban:

24

Lihat plugin Generalizer, itu harus melakukan apa yang Anda inginkan. Plugin ini memiliki opsi perataan yang bekerja dengan cukup baik.

Itu tidak mengubah bagaimana baris Anda diberikan tetapi sebaliknya membuat shapefile baru dengan smoothing (atau penyederhanaan / generalisasi) diterapkan.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Nathan W
sumber
Saya tidak dapat menemukan plugin ini untuk QGIS 1.7.3 walaupun saya memiliki repo pihak ke-3 yang diaktifkan. Bisakah Anda menunjukkan cara mengaktifkan / menemukannya? Terlihat menarik dan lugas.
SaultDon
3
Aneh. Itu harus di installer plugin karena berasal dari repo plugin QGIS utama.
Nathan W
3
Anda benar, tetapi dari Penginstal Pengaya Python, saya harus membuka tab opsi dan mengubah "Plugin yang Diizinkan" menjadi: "Tampilkan semua plugin, bahkan yang ditandai sebagai eksperimental".
SaultDon
Saya akhirnya bermain dengan plugin ini sedikit malam ini dan itu sebenarnya bekerja lebih baik bagi saya karena saya tidak harus menggunakan lapisan GRASS dan hanya dapat mengubah bentuk file saya saat ini.
Brian Kelly
Saya harus melakukannya dalam dua langkah untuk digitalisasi saya yang sangat terperinci tetapi bergerigi: pertama menyederhanakan (misalnya algoritma Lang), dan kemudian menghaluskan. Berhasil memperlakukan.
berbeda ben
16

Menggunakan plugin QGIS + GRASS:

Tambahkan toolbar Grass dari jendela "Manage Plugins". tambahkan plugin alat rumput ke qgis

Baris Anda harus berupa vektor rumput, jadi konversikan ke dalam set GRASS baru atau yang sudah ada.

Dari toolbar GRASS, pilih GRASS Tools ... masukkan deskripsi gambar di sini

Cari modul: v.generalisasi ( tutorial WIKI di sini )

Anda kemudian dapat memilih beberapa algoritma generalisasi yang berbeda: Alat GRASS v. Generalisasi pemilihan algoritma

Perhatikan algoritma: Chaiken, Hermite atau bahkan Sliding Average. Ada beberapa yang lain juga!

Perbedaannya dapat dilihat pada gambar wiki: v.generalisasikan contoh perbedaan yang disederhanakan

dari Wiki: "Perhatikan, bahwa perbedaan antara" Chaiken "dan" Hermite "adalah bahwa garis yang diproduksi oleh" Chaiken "" menuliskan "garis asli sedangkan" Hermite "garis" membatasi "garis asli seperti yang dapat dilihat di gambar [di atas]. (Garis hitam adalah garis asli, garis hijau adalah "Chaiken" dan biru adalah "Hermite")


Menggunakan uDig + jgrasstools atau rumput:

Jika Anda mengalami kesulitan mendapatkan hasil yang diinginkan dari GRASS's v.generalisasi, coba versi terbaru dari uDig dengan jgrasstools . Anda juga dapat mengambil tabung rumput dari tempat yang sama dengan jgrasstools.

Setelah uDig diinstal dan dijalankan dan dijalankan, aktifkan Spatial Toolbox : Window> Show View> Other ... aktifkan spatial toolbox di uDig

Batalkan dok bilah alat agar lebih mudah dibaca (klik kanan tab Spatial Toolbox> Detach ...): melepaskan kotak peralatan spasial di uDig

Muat modul jgrasstools dan rumput (opsional) yang diperlukan: memuat jgrasstools / rumput ke udig

Jangan lupa untuk mengatur parameter rumput Anda (arahkan ke file executable atau bat file di windows, atau perintah rumput di linux yaitu, / usr / bin / grass) jika Anda memuat file jar rumput juga: pengaturan parameter rumput di uDig

Akhirnya! Dengan menggunakan alat-alat dari jgrasstools (bukan rumput) Anda dapat menggeneralisasikan garis dengan mudah dengan Vector Processing> LineSmootherJaiTools Pemrosesan Vektor ke LineSmootherJaiTools di uDig

Pastikan untuk mengatur input dan output dengan benar (hanya berfungsi pada Shapefile, jadi tidak perlu mengonversi data Anda ke mapet / lokasi untuk rumput) : pengaturan input dan output untuk Spatial Toolbox di uDig

Setelah selesai mengatur toleransi smoothing (0,0 - 1.0) dan input / output, tekan tombol Play pada jendela Spatial Toolbox (kanan atas): mainkan modul di Spatial Toolbox untuk uDig

Hasil:
uDig menyederhanakan hasil jgrasstools ...

SaultDon
sumber
Apakah ini mengubah data asli atau memfilternya sebelum QGIS merendernya?
Brian Kelly
Ah, itu dijawab di sini: "(Garis) smoothing adalah proses" mundur "yang mengambil input garis dan menghasilkan perkiraan yang lebih halus dari aslinya. Dalam beberapa kasus, ini dicapai dengan memasukkan simpul baru ke dalam garis asli, dan dapat berjumlah hingga 4000% dari jumlah simpul dalam dokumen asli. Dalam contoh seperti itu, selalu merupakan ide bagus untuk menyederhanakan garis setelah dihaluskan. " dari grass.osgeo.org/grass64/manuals/html64_user/v.generalize.html
Brian Kelly
Jadi sepertinya ini adalah sesuatu yang kemungkinan akan Anda terapkan setelah Anda mengonfirmasi bahwa semua baris Anda sudah benar dan tidak perlu diedit lebih lanjut (kecuali jika Anda ingin menyesuaikan semua vektor tambahan dan kemudian menghaluskannya lagi)
Brian Kelly
@pline Ya, karena Anda harus bekerja dengan "dataset rumput" yang pada dasarnya - BUKAN shapefile, Anda ingin memastikan shapefile asli selesai. Menyederhanakan garis untuk menghilangkan simpul tambahan adalah pilihan juga tergantung pada berapa lama garis itu dan jumlah simpul yang ada dalam kurva bezier .
SaultDon
Oh kata saya, rumput tidak masuk akal bagi saya ... nama peta, nama lokasi, dbase, PERMANEN ... Saya mencoba 'menemukan' cara menggunakan jawaban ini (dengan diakui tidak memiliki pengetahuan sebelumnya tentang rumput), dan gagal total. File sepertinya menuju ke tempat yang paling tidak Anda harapkan (apakah saya kira itu bukan file?), Saya tidak bisa memilih layer yang dikonversi dalam dialog generalisasi setelah akhirnya menemukan cara memilih peta (bukan karena saya tahu apa yang dimaksud dengan sebuah peta) ... mimpi buruk. Tampak barang-barang jika saya bisa menyelesaikan semuanya :)
berbeda
1

Ada cara lain, mungkin cara ini hanya sejak versi QGIS 2.0:

Di bawah Memproses> Kotak Alat Anda dapat mengakses GRASS dan SAGA Tools. Untuk menghaluskan, di sana Anda menemukan v.generalisasi, tetapi juga penyederhanaan garis dari SAGA. Alat-alat ini bekerja pada shapefile biasa, sehingga tidak ada vektor rumput yang diperlukan:

masukkan deskripsi gambar di sini

Mode batch belum diselesaikan dengan baik (klik kanan di me-kanan dan pilih "Execute as batch", karena kita harus memilih setiap file secara manual. Plug-in generalisasi yang disebutkan di atas memungkinkan kita memilih banyak file dengan lebih mudah , tetapi ini hanya berfungsi sekarang jika seseorang tidak menentukan file untuk menyimpan, jika tidak plug in crash.

Maks
sumber
1

Ada alghoritm geometri Lancar di bawah Processing Toolbox -> QGis geoalghoritms -> Vector.

Baris
sumber