ฉันมีชุดสคริปต์ postgis ที่สร้างสองตาราง - หนึ่งในชุดของคะแนนและชุดที่สองของถนนที่ล้อมรอบพวกเขา ข้อมูลทั้งหมดอยู่ในการฉายภาพเดียวกันและผลลัพธ์ทั้งสองจะถูกเก็บไว้ใน postgres 9.2 ตารางที่มี postgis 2.1
โทโพโลยี pgrouting ของเครือข่ายถนนถูกสร้างขึ้นและตารางคะแนนมีคอลัมน์ที่มีส่วนถนนที่ใกล้ที่สุด
ฉันต้องการสร้างส่วนย่อยของเครือข่ายถนนซึ่งเป็นเครือข่ายที่เล็กที่สุดที่เชื่อมต่อทุกจุดโดยใช้บางอย่างเช่นแผนผังทอดข้ามขั้นต่ำ เครือข่ายถนนไม่ได้ถูกบอกทิศทางและค่าใช้จ่ายเป็นเพียงความยาวเส้นทาง
ฉันสามารถทำสิ่งนี้ได้ใน QGIS / Grass โดยใช้โมดูลตระกูล v.net แต่ในอุดมคติฉันก็อยากจะรักษาขั้นตอนสุดท้ายนี้ไว้ใน SQL เช่นกัน
ฉันได้ดูฟังก์ชั่นใหม่ของ apspWarshall postgis แต่ฉันกำลังสูญเสียว่าจะสามารถกระตุ้นให้พลังงานมุ่งเน้นไปที่การเชื่อมต่อจุดต่างๆไม่ใช่เครือข่ายทั้งหมดได้อย่างไร
นี่เป็นสคริปต์สั้น ๆ ที่ฉันได้รวบรวมไว้ในความพยายามที่จะสร้างกรอบการทำงานเพื่อแก้ไขปัญหานี้ แต่ฉันไม่สามารถเห็นได้ว่าจะให้โฟกัสไปที่ฟังก์ชันใดเพื่อเริ่มต้นด้วยส่วนย่อยของขอบ
SELECT seq, id1 AS node, id2 AS edge, cost, the_geom
FROM pgr_apspWarshall('SELECT gid AS id,
source,
target,
st_length(the_geom) AS cost
FROM road_network
',
false, false
) AS tree
JOIN road_network As roads
ON tree.id2 = roads.gid
ในเส้นทางที่สั้นที่สุดปัญหาเส้นทางเดียวฟังก์ชั่นขอเริ่มต้นและสิ้นสุด แต่เห็นได้ชัดว่าไม่ได้อยู่ในปัญหาทุกจุด เท่าเทียมกันใน Grass the v.net.spanningtree และ v.net.steiner คาดหวังว่าจะได้รับชุดของจุดและเส้นในฐานะเครือข่ายที่รวมกัน
ไม่มีใครมีคำแนะนำสำหรับวิธีการทำเช่นนี้ใน PostGIS