แปลงบรรทัดเป็นรูปหลายเหลี่ยม


13

ฉันมี Shapefile ที่มีพื้นที่เมือง แต่น่าเสียดายที่ Shapefile มีเพียงบรรทัดเดียว Shapefile มีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันต้องการแปลงบรรทัดเหล่านั้นไปเป็นรูปร่างไฟล์พื้นที่รูปหลายเหลี่ยมใน QGIS ฉันลองด้วยเครื่องมือ "Lines to polygons" (Vector> Geometry Tools> Lines to polygons) แต่มันไม่ทำงานอย่างถูกต้อง หลังจากใช้เครื่องมือนี้แล้วรูปร่างไฟล์จะมีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

มีวิธีอื่นในการแปลง linefilefile ไปเป็นพื้นที่ polygon shapefile ใน QGIS หรือไม่?

อย่างไรก็ตามฉันใช้ QGIS 2.14.3 Essen


2
ฉันมีสิ่งที่คล้ายกันในครั้งสุดท้ายที่ฉันใช้เครื่องมือนั้น ฉันสามารถรับรูปหลายเหลี่ยมได้โดยใช้เครื่องมือรูปหลายเหลี่ยม
johns

ขอบคุณสำหรับคำตอบของคุณฉันจะหาเครื่องมือรูปหลายเหลี่ยมได้จากที่ไหน?
Mark White

รูปหลายเหลี่ยมสามารถพบได้ที่นี่ - กล่องเครื่องมือการประมวลผลขั้นตอนวิธีภูมิศาสตร์ QGIS เครื่องมือเรขาคณิตเวกเตอร์
klewis

ฉันลองแล้ว แต่เมื่อฉันเรียกใช้ polygonizer ฉันจะได้รับไฟล์รูปร่างที่ว่างเปล่า :-(
Mark White

คุณสามารถอัปโหลดรูปร่างไฟล์ไปยังดรอปบ็อกซ์หรือคล้ายกันได้หรือไม่
AndreJ

คำตอบ:


16

Polygonizeเครื่องมือจากกล่องเครื่องมือประมวลผลยังคงทำงานได้ดีสำหรับฉันในเส้นที่เรียบง่าย:

ป้อนคำอธิบายรูปภาพที่นี่

อย่างไรก็ตามมีความจำเป็นที่เส้นตัดกันหรือแบ่งปันจุดยอดทั่วไป และเส้นควรไม่มีทางแยกด้วยตนเอง

คุณอาจต้องตะครุบจุดยอดมุมเพื่อให้ทำงานได้ ฉันมักจะตั้งค่าความทนทานต่อการหักมุมเป็น 10 พิกเซลถึงจุดสุดยอด


1
ฉันเผชิญปัญหาเดียวกันเช่นกันเมื่อแปลงบรรทัดเป็นรูปหลายเหลี่ยม เครื่องมือ "รูปหลายเหลี่ยม" แก้ปัญหาได้ gis.stackexchange.com/a/211794/62237
Sjs

7

เพียงคำใบ้หากคุณไม่พบPolygonizeเครื่องมือ ในการติดตั้ง QGIS 2.18.3 ของฉัน (Windows) ฉันไม่พบPolygonizeเครื่องมือที่Vector geometry toolsอยู่ในกล่องเครื่องมือ ฉันใช้เวลาสักครู่เพื่อรู้ว่าฉันต้องติดตั้งpython-shapelyห้องสมุดด้วย OSGeo4W (ขอบคุณNick Hopton: Perfect Polygons ใน QGIS )


ขอขอบคุณ! ฉันสับสนมานานแล้วเนื่องจากกล่อง QGIS บน Windows มีเครื่องมือรูปหลายเหลี่ยมที่ใช้สำหรับ rasters เท่านั้น อีกขั้นตอนที่อาจจำเป็นหรือไม่จำเป็นคือการเปิดใช้งานขั้นตอนวิธีการทางภูมิศาสตร์ของ QGIS ภายใต้ "การประมวลผล >> ตัวเลือก >> ผู้ให้บริการ"
matt wilkie

ขอบคุณสำหรับคำตอบนี้ ผมคิดว่าผมจะบ้าไม่ได้หามันอีกต่อไป ...
gisnside

3

เมื่อมองที่ภาพของคุณฉันคิดว่าแต่ละบรรทัดไม่ครอบคลุมพื้นที่ทั้งหมดเส้นนั้นเพิ่งทำหน้าที่เป็นรั้วและไม่เชื่อมต่อกลับไปที่จุดเริ่มต้น รูปหลายเหลี่ยมของคุณจะถูกสร้างขึ้นจากปลายของเส้นเพื่อให้เครื่องมือ 'สายไปยังรูปหลายเหลี่ยม' ทำงานได้ดีข้อมูลของปัญหานั้น

ฉันเกรงว่าสิ่งเดียวที่คุณทำได้ที่ฉันคิดได้ก็คือการสร้างรูปหลายเหลี่ยมหลายชั้นในรูปแบบดิจิทัล โชคดีที่ QGIS ทำให้มันง่ายมากด้วยเครื่องมือการทำสำเนาดิจิทัล (ไอคอนแม่เหล็ก) ซึ่งมีให้ใน 2.14


0

หากไม่มีรูฉันจะสร้างเลเยอร์รอยขีดข่วนด้วยรูปหลายเหลี่ยมขนาดใหญ่พอที่จะครอบคลุมพื้นที่ทั้งหมดของคุณ จากนั้นฉันจะตัดมันด้วยผลลัพธ์จากเส้นตรงเป็นรูปหลายเหลี่ยมของคุณแล้วแยกออกตามความจำเป็น


0

ทดสอบบน QGIS 2.18 และ QGIS 3.4

ฉันจะแนะนำให้ใช้ผ่าน"Virtual Layer"Layer > Add Layer > Add/Edit Virtual Layer...

สมมติว่าเรามีคุณสมบัติห้าบรรทัดใน"lines"ดูภาพด้านล่าง

ตัวอย่าง

ด้วย Query ต่อไปนี้เป็นไปได้ที่จะบรรลุผล

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

เลเยอร์เสมือนของเอาต์พุตจะมีลักษณะดังนี้

Result_1

ตามที่ได้รับการกล่าวถึงแล้วโดย@AndreJเส้นจะตัดกันหรือแบ่งปันจุดยอดทั่วไป และเส้นควรไม่มีทางแยกด้วยตนเอง ในแง่ของการทำความสะอาดโทโพโลยีของเลเยอร์ฉันสามารถแนะนำให้สำรวจv.cleanชุดเครื่องมือ GRASS


ในกรณีที่เส้นมีจุดตัดเองคุณสามารถใช้ ConvexHull กับ Query ต่อไปนี้

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

กรณี

เอาท์พุต


อ้างอิง:


0

หาก polylines ทับซ้อนกันPolygonizeเครื่องมือจะไม่สามารถจัดการได้ดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

อย่างไรก็ตามLines to polygonsเครื่องมือทำงานตามที่คาดไว้ดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.