Konversikan garis menjadi poligon

13

Saya memiliki shapefile dengan area kota tetapi sayangnya shapefile hanya berisi satu garis. Shapefile terlihat seperti ini:

masukkan deskripsi gambar di sini

Saya ingin mengonversi garis-garis tersebut ke shapefile area-poligon di QGIS. Saya mencobanya dengan alat "Garis ke poligon" (Vektor> Alat Geometri> Garis ke poligon), tetapi tidak berfungsi dengan benar. Setelah menggunakan alat ini, shapefile terlihat seperti ini:

masukkan deskripsi gambar di sini

Apakah ada cara lain untuk mengubah garis shapefile ke area poligon shapefile di QGIS?

Omong-omong, saya menggunakan QGIS 2.14.3 Essen.

Mark White
sumber
2
Saya mendapatkan sesuatu yang serupa saat terakhir kali saya menggunakan alat itu. Saya bisa mendapatkan poligon dengan menggunakan alat poligonisasi.
hidung belang
Terima kasih atas jawaban Anda, di mana saya dapat menemukan alat poligonisasi?
Mark White
Polygonize dapat ditemukan di sini - Pemrosesan Toolbox, geoalgoritma QGIS, alat geometri vektor.
klewis
Saya mencobanya, tetapi ketika saya menjalankan polygonizer saya mendapatkan file bentuk kosong :-(
Mark White
Bisakah Anda mengunggah shapefile ke dropbox atau serupa?
AndreJ

Jawaban:

16

The Polygonizealat dari toolbox Pengolahan masih berfungsi dengan baik untuk saya pada garis sederhana:

masukkan deskripsi gambar di sini

Namun perlu bahwa garis berpotongan, atau berbagi simpul umum. Dan garis seharusnya tidak memiliki persimpangan pribadi.

Anda mungkin perlu mengambil simpul sudut untuk membuatnya bekerja. Saya biasanya mengatur toleransi gertakan ke 10 piksel ke titik.

AndreJ
sumber
1
Saya juga menghadapi masalah yang sama ketika mengubah garis menjadi poligon. Alat "Polygonize" memecahkan masalah ini. gis.stackexchange.com/a/211794/62237
Sjs
7

Hanya sebuah petunjuk jika Anda tidak dapat menemukan Polygonizealatnya. Dalam instalasi QGIS 2.18.3 saya (Windows) saya tidak dapat menemukan Polygonizealat di Vector geometry toolsdalam Toolbox. Butuh beberapa waktu untuk menyadari bahwa saya perlu menginstal python-shapelyperpustakaan dengan OSGeo4W (terima kasih Nick Hopton: Perfect Polygons in QGIS ).

Nicolo
sumber
Terima kasih! Saya bingung untuk waktu yang lama karena di luar kotak QGIS di Windows memiliki alat poligon yang hanya untuk raster. Langkah lain yang mungkin atau mungkin tidak diperlukan adalah mengaktifkan QGIS Geoalgorithms di bawah "Memproses >> Pilihan >> Penyedia"
matt wilkie
Terima kasih atas jawaban ini. Saya pikir saya sudah gila tidak menemukannya lagi ...
gisnside
3

Melihat gambar Anda, saya akan berasumsi bahwa setiap baris tidak sepenuhnya mencakup area, garis hanya bertindak sebagai pagar dan tidak menyambung kembali di awal. Poligon Anda sedang dibuat dari ujung garis sehingga alat 'garis ke poligon' berfungsi dengan baik, datanya adalah masalahnya.

Saya khawatir satu-satunya yang dapat Anda lakukan yang dapat saya pikirkan adalah mendigitalkan lapisan poligon baru. Untungnya QGIS telah membuatnya sangat mudah dengan alat digitalisasi jejak (ikon magnet) yang tersedia di 2.14

Knightshound
sumber
0

Jika tidak ada lubang, saya akan membuat lapisan awal dengan poligon tunggal yang cukup besar untuk menutupi seluruh area Anda. Lalu saya akan memotongnya dengan hasil garis-ke-poligon Anda dan membaginya lebih lanjut sesuai kebutuhan.

lynxlynxlynx
sumber
0

Diuji pada QGIS 2.18 dan QGIS 3.4

Saya dapat menyarankan menggunakan "Virtual Layer"melalui Layer > Add Layer > Add/Edit Virtual Layer....

Anggaplah kita memiliki lima fitur garis "lines", lihat gambar di bawah.

Contoh

Dengan Permintaan berikut, dimungkinkan untuk mencapai hasil.

SELECT l.id, l.NAME, MakePolygon(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

Output Virtual Layer akan terlihat seperti

Hasil_1

Seperti yang telah disebutkan oleh @AndreJ , garis akan memotong atau berbagi simpul umum. Dan garis seharusnya tidak memiliki persimpangan pribadi. Dalam hal membersihkan topologi layer, saya dapat menyarankan menjelajahi v.cleantoolset GRASS.


Dalam kasus garis memiliki persimpangan sendiri, Anda dapat menggunakan ConvexHull dengan Query berikut

SELECT l.id, l.NAME, ConvexHull(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

Kasus

Keluaran


Referensi:

Taras
sumber
0

Jika polyline saling tumpang tindih, Polygonizealat tidak dapat menanganinya sebagai berikut:

masukkan deskripsi gambar di sini

Namun Lines to polygonsalat bekerja seperti yang diharapkan sebagai berikut:

masukkan deskripsi gambar di sini

M.Reza
sumber