ผสานบรรทัดที่มีจุดปลายต่างกันเล็กน้อยใน QGIS


22

ใน QGIS ฉันมีสองบรรทัด จุดปลายอยู่ใกล้กัน แต่ไม่เรียงกัน ฉันต้องการเปลี่ยนสองบรรทัดเป็นหนึ่งเดียวโดยที่จุดปลายทั้งสองรวมกันเป็นจุดกึ่งกลาง

สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถทำได้คือ "ผสานคุณสมบัติที่เลือกไว้" นั่นให้คุณสมบัติเดียวกับฉัน แต่มันประกอบด้วยเส้นแบ่งสองเส้น - ไม่มีเส้นแบ่งระหว่างจุดปลาย

ฉันกำลังมองหาบางอย่างที่มีลักษณะคล้ายกับคุณลักษณะเส้นทางการเข้าร่วมของ Illustrator (วัตถุ> เส้นทาง> เข้าร่วม)

QGIS ทำเช่นนั้นหรือไม่?

คำตอบ:


12

คำตอบด่วน: ไม่! ไม่มีเครื่องมือเช่นนั้นในการดำเนินการดังกล่าวโดยตรงบนเลเยอร์ (ปลั๊กอิน "เข้าร่วมสองบรรทัด" ต้องใช้จุดตัด)

คุณสามารถทำได้สำหรับเลเยอร์ที่ง่ายมากโดยการเปลี่ยนบรรทัดเป็นจุด (แยกโหนด) จากนั้นเข้าร่วมกับ points2one (เอาต์พุตบรรทัด) แต่สิ่งนี้จะช้ากว่าการแก้ไขด้วยมือมาก:

  1. ตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้งาน (การตั้งค่า | ตัวเลือกการจัดวาง ... ) สำหรับเลเยอร์บรรทัดของคุณ (5 พิกเซลทำงานได้ดีสำหรับฉัน)
  2. สร้างบรรทัดใหม่จากปลายทางหนึ่งไปอีกบรรทัด
  3. เลือกทั้งสามบรรทัด (ทั้งสองบรรทัดเดิม + ใหม่) และรวมเข้าด้วยกัน (แก้ไข | ผสานคุณสมบัติที่เลือกหรือปุ่มแถบเครื่องมือ)

1
ขอบคุณ ฉันมีเพียงไม่กี่บรรทัดในการผสานดังนั้นนี่จึงเป็นเรื่องง่ายและรวดเร็ว (@Michael Markieta ตอบได้ดีกว่าเหมาะกับสถานการณ์ที่ซับซ้อน)
Evan

14

คุณสามารถทำสิ่งนี้ได้ด้วยการรวมกันของ QGIS และ GRASS

  1. นำเข้าเลเยอร์เวกเตอร์ของคุณไปยัง GRASS mapset (Grass | ไฟล์> นำเข้าข้อมูลเวกเตอร์)
  2. เปิด mapset ของคุณใน QGIS (QGIS | ปลั๊กอิน> GRASS> Open mapset)
  3. เพิ่มเลเยอร์เวกเตอร์จาก GRASS mapset ของคุณไปยังโครงการ QGIS ของคุณ (QGIS | ส่วนเสริม> GRASS> เพิ่มเลเยอร์เวกเตอร์ GRASS)
  4. ใช้ v.clean.snap (QGIS | ปลั๊กอิน> GRASS> เครื่องมือ Open GRASS> รายการโมดูล> v.clean.snap)

ปรับ v.clean.snap 'threshold' เพื่อให้ถึงจุดสุดยอดที่เหมาะสมในพื้นที่การศึกษา


10

ฉันสมมติว่าคุณต้องการเข้าร่วมสองส่วนของบรรทัดเป็นหนึ่งบรรทัด ป้อนคำอธิบายรูปภาพที่นี่

นี่คือสิ่งที่ฉันทำ ...

  • เปิดใช้งานการแก้ไข
  • เปิดการหัก (การตั้งค่า -> ตัวเลือกการหัก ... ป้อนคำอธิบายรูปภาพที่นี่
  • เลือกเครื่องมือโหนดโหนดป้อนคำอธิบายรูปภาพที่นี่
  • ดับเบิลคลิกที่ใกล้กับจุดสิ้นสุดของหนึ่งในบรรทัดเพื่อเพิ่มโหนด ป้อนคำอธิบายรูปภาพที่นี่
  • ลากโหนดที่ท้ายเพื่อสแน็ปอินไปยังจุดสิ้นสุดของบรรทัดอื่น ป้อนคำอธิบายรูปภาพที่นี่
  • เลือกทั้งสองสาย
  • ผสานคุณสมบัติของพวกเขา (คุณไม่สามารถสร้าง therm หนึ่งบรรทัดหากพวกเขามีคุณสมบัติที่แตกต่างกัน)ป้อนคำอธิบายรูปภาพที่นี่
  • ผสานคุณสมบัติทั้งสองเข้าด้วยกันป้อนคำอธิบายรูปภาพที่นี่

ซึ่งควรส่งผลให้หนึ่งบรรทัด ป้อนคำอธิบายรูปภาพที่นี่


ทุกอย่างดี แต่ชุดข้อมูลของ 22,000 บรรทัดเป็นอย่างไร ฉันไม่สามารถไปเกี่ยวกับการทำเช่นนี้ด้วยตนเอง ...
FaCoffee

5

มีปลั๊กอิน QGIS นี้ซึ่งระบุว่าทำสิ่งที่คุณต้องการอย่างแน่นอน

https://plugins.qgis.org/plugins/joinmultiplelines/ https://github.com/dgoedkoop/joinmultiplelines

(อย่างไรก็ตามฉันไม่สามารถใช้งานได้อย่างถูกต้องใน QGIS 2.6)


เคยทำงานได้ดีใน 3.8
user94812

3

หากคุณหมายความว่าฟีเจอร์เดียวของคุณประกอบด้วย MULTILINESTRING แทนที่จะเป็น LINESTRING เดียวคุณสามารถแก้ไขได้อย่างง่ายดายหากคุณใช้ฐานข้อมูล Postgis:

update your_table set your_geo_column = ST_LineMerge(your_geo_column);

หากคุณต้องการให้ 1 แถวทำเช่นนี้คุณควรเพิ่ม WHERE id = your_row_id แน่นอน


2

บางคนสามารถลอง:

  1. บันทึก. shp เป็น. dxf
  2. เปิด. dxf ด้วย DraftSight
  3. เข้าร่วมชิ้นส่วน polyline
  4. เปิด. dxf อีกครั้งด้วย qgis และบันทึกเป็น. shp
  5. จากเมนู Vector -> เครื่องมือเรขาคณิต -> เส้นไปยังรูปหลายเหลี่ยม

2

ฉันเพิ่งทำสิ่งนี้กับ QGIS 3.4.0 โดยใช้ปลั๊กอินเข้าร่วมหลายบรรทัดที่กล่าวถึงโดย tnagel ด้านบน (ติดตั้งภายใต้เมนูเวกเตอร์> เข้าร่วมหลายบรรทัด) ทำงานได้ดีในการเข้าร่วมประมาณ 60 ชิ้นส่วนของเส้นเส้นทางเป็นประมาณ 20 เส้นทาง ยิ่งชิ้นส่วนของคุณมีขนาดใหญ่ขึ้นและยิ่งมีพื้นที่ครอบคลุมมากเท่าไรคุณก็จะได้รับประโยชน์น้อยลงเนื่องจากคุณต้องดูผลลัพธ์ของปัญหา (tnagel อาจเป็นปัญหาที่ฉันอธิบาย)

คุณเลือกบรรทัดที่คุณต้องการเข้าร่วมคลิกที่รายการเมนูและเข้าร่วม (คุณสามารถเลือกได้หลายบรรทัดตามที่คุณต้องการ แต่ ... ) แม้ว่าจุดสิ้นสุดจะอยู่ห่างกันเป็นไมล์คุณจะได้เส้นตรงจาก จบของหนึ่งไปยังอีกปลายหนึ่งของการเชื่อมต่อพวกเขาดังนั้นให้แน่ใจว่าปลายของคุณอยู่ใกล้พอดังนั้นคุณจะมีความสุขกับผลลัพธ์ (ฉันใช้เคล็ดลับในโพสต์อื่นเพื่อทำเครื่องหมายจุดสิ้นสุดของเส้นของฉันด้วยเครื่องหมาย เพื่อดู (คุณสมบัติ> สัญลักษณ์> เพิ่มบรรทัดเครื่องหมายและทำให้สัญลักษณ์มีขนาดใหญ่พอที่จะดูได้ง่าย> เลือกปุ่มตัวเลือก "ที่จุดสุดยอดเท่านั้น" (และถ้าคุณต้องการให้เพิ่มบรรทัดเครื่องหมายอื่นด้วยสัญลักษณ์ที่แตกต่างกันและเลือก "ในครั้งแรก จุดสุดยอดเท่านั้น "))

นอกจากนี้เส้นอาจเป็นทิศทาง ดังนั้นคุณต้องดู (ตัวอย่าง) ว่าปลายใต้สุดของบรรทัด A ไม่ได้เข้าร่วมกับปลายใต้สุดของบรรทัด B ด้านล่าง (อีกเส้นตรงยาวที่คุณไม่ต้องการ)

ฉันพบว่าสิ่งนั้นเกิดขึ้นเมื่อฉันสามารถ "เลิกทำ" และใช้ "Reverse line" ใน Advanced Processing Toolbar เพื่อพลิกทิศทางของสายจากปลายด้านหนึ่งไปอีกด้านหนึ่ง กับจุดสิ้นสุดของบรรทัด) จากนั้นเข้าร่วมบรรทัดอีกครั้ง

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

ฉันประหลาดใจอย่างต่อเนื่องในงานที่ทำโดยนักพัฒนาหลักและปลั๊กอินของ QGIS แสดงให้เห็นว่ามนุษย์ที่สร้างสรรค์สามารถทำอะไรได้เมื่อพวกเขาตัดสินใจที่จะทำงานร่วมกัน ขอขอบคุณ!


0

ใช้ OpenJUMP (ฉบับบวก):

  1. ไฟล์> เปิดไฟล์
  2. ปลั๊กอิน> โทโพโลยี> การทำความสะอาดทอพอโลยีเครือข่าย ...
  3. คลิกขวาที่เลเยอร์ใหม่ (คงที่): บันทึกชุดข้อมูลเป็น ...

นี่คือผลลัพธ์ที่ได้: ป้อนคำอธิบายรูปภาพที่นี่


0

ในกรณีของฉันบรรทัดต่าง ๆ ในเลเยอร์ที่แตกต่างกัน ฉันรวมเลเยอร์กับmmqgisแล้วผสานเส้นในขั้นตอนต่อไปด้วยเทคนิคการตัดและรวมเส้น

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