ฉันมี Shapefile (ประกอบด้วยถนนสายหลักในยุโรป) ประมาณ 250,000 เซ็กเมนต์ซึ่งฉันต้องทำให้ง่ายขึ้นสำหรับการเริ่มต้น แต่ฉันไม่สามารถหาวิธีที่จะทำอย่างถูกต้อง
นี่คือสิ่งที่ดูเหมือนว่า:
และนี่คือสิ่งที่ควรมีลักษณะ:
ฉันจะต้องลบทุกจุดของเส้นที่เชื่อมต่อกับน้อยกว่า 3 เส้น (ไม่ใช่จุดตัด) ในขณะที่รักษาการเชื่อมต่อทอพอโลยีระหว่างจุดที่เหลือ หากใครมีความคิดมันก็จะได้รับการชื่นชมอย่างมาก!
ขอแสดงความนับถืออย่างสูง
แก้ไข:ฉันพยายามใช้ความคิดของ @dkastl และจัดการเพื่อรับโหนดที่ไม่จำเป็นเท่านั้น (โหนดที่มี linestrings ติดกันเพียง 2) จากเครือข่ายของฉันด้วยรหัสด้านล่าง (การสร้างเครือข่ายที่นำมาจากบล็อกของ underdark http://underdark.wordpress.com / 2011/02/07 / a- เริ่มต้น -to-pgrouting / ):
SELECT * FROM
(SELECT tmp.id as gid, node.the_geom FROM
(SELECT id, count(*) FROM network
JOIN node
ON (start_id = id OR end_id = id) AND (end_id = id OR start_id = id)
GROUP BY id ORDER BY id) as tmp
JOIN node ON (tmp.id = node.id)
WHERE tmp.count = 2) as unn_node;
ดังนั้นสิ่งที่ฉันต้องทำตอนนี้คือการรวมกันของเส้น อย่างไรก็ตามฉันไม่มีเงื่อนงำอย่างไร ฉันคิดว่ามันจะต้องมีการวนรอบซึ่งสำหรับทุกแถวของผลลัพธ์ของแบบสอบถามข้างต้นจะได้เส้นที่อยู่ติดกันและรวมเข้าด้วยกัน จากนั้นมันจะสร้างเครือข่ายใหม่ทั้งหมดและทำซ้ำกระบวนการจนกว่าแบบสอบถามด้านบนจะส่งคืนผลลัพธ์ที่ว่างเปล่า