मेरे पास पोस्टगिस लिपियों का एक सेट है जो दो तालिकाओं को उत्पन्न करता है - एक अंक का सेट और दूसरा सड़कों का एक सेट जो उन्हें घेरता है। सभी डेटा एक ही प्रक्षेपण में है और दोनों आउटपुट पोस्टगिस 2.1 के साथ 9.2 तालिकाओं में संग्रहीत हैं
सड़क नेटवर्क की पगाउटिंग टोपोलॉजी बनाई गई है और पॉइंट टेबल में एक स्तंभ है जिसमें निकटतम सड़क खंड है।
मैं तब सड़क नेटवर्क का एक सबसेट बनाना चाहता हूं जो सबसे छोटे नेटवर्क का प्रतिनिधित्व करता है जो न्यूनतम फैले हुए पेड़ की तरह कुछ का उपयोग करके सभी बिंदुओं को जोड़ता है। सड़क नेटवर्क अप्रत्यक्ष है, और लागत केवल मार्ग की लंबाई है।
मैं मॉड्यूल के v.net परिवार का उपयोग करके QGIS / Grass में ऐसा कर सकता हूं, लेकिन आदर्श रूप से मैं इस अंतिम चरण को 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
एकल पथ सबसे छोटी पथ समस्याओं में फ़ंक्शन प्रारंभ और समाप्ति के लिए पूछता है, लेकिन स्पष्ट रूप से सभी बिंदु समस्याओं में नहीं। समान रूप से ग्रास में v.net.spanningtree और v.net.steiner के साथ काम करने के लिए एक संयुक्त नेटवर्क के रूप में बिंदुओं और लाइनों के एक सेट की उम्मीद है।
क्या किसी के पास PostGIS में ऐसा करने के लिए कोई सुझाव है?