मैं एक तालिका में बहुभुज सुविधाओं के बीच साझा सीमाओं को भंग करने के लिए एक फ़ंक्शन की तलाश कर रहा हूं। ST_UNION () लगभग वही करता है जो मैं देख रहा हूं, लेकिन यह परत में सभी बहुभुजों से एक बहुभुज बनाता है चाहे वे एक सामान्य सीमा साझा करें या नहीं। मैं केवल बहुभुज के बीच की सीमाओं को भंग करना चाहता हूं जो एक दूसरे को छूते हैं। मुझे लगा, ST_TOUCHES () का उपयोग करने का कोई तरीका होना चाहिए, लेकिन फिर एक विघटित फ़ंक्शन की आवश्यकता इतनी आम लगती है कि अगर इसे प्राप्त करने के लिए कोई अंतर्निहित फ़ंक्शन नहीं है तो मुझे आश्चर्य होगा।
उपयोग का मामला इस तरह दिखता है: मैंने एक बड़े यूरोपीय देश के लिए कोरीन लैंडकवर डेटा डाउनलोड किया और मैं विभिन्न वन प्रकारों (लगभग एक तालिका में 75,000 बहुभुज) के बीच की सीमाओं को भंग करना चाहता हूं। मैंने ST_UNION की कोशिश की, लेकिन यह मुझे "मेमोरी से बाहर" त्रुटि के साथ विफल कर देता है (30,000 पॉलीगोन ने हालांकि काम किया):
create table corine00 as
select st_union(the_geom) as the_geom,
sum(area_ha) as area_ha,
substr(code_00,1,2) as code_00
from clc00_c31_forests
group by substr(code_00,1,2)
नोट: सभी वन कोड '31' से शुरू होते हैं और मैं PostGIS 1.4, GEOS संस्करण का उपयोग कर रहा हूं: 3.2.0-CAPI-1.6.0