मेरे पास बड़े क्षेत्रों का प्रतिनिधित्व करने वाले बहुभुज का एक सेट है, शहर के पड़ोस कहते हैं। मैं उनके बीच बड़े अतिव्यापी क्षेत्रों की पहचान करना चाहता हूं।
लेकिन एक समस्या है: कभी-कभी ये पॉलीगॉन अपने परिधि के साथ ओवरलैप हो जाएंगे (क्योंकि वे थोड़ी सटीकता के साथ खींचे गए थे)। यह लंबे और संकीर्ण ओवरलैप उत्पन्न करेगा जिनकी मुझे परवाह नहीं है।
लेकिन अन्य समय में मजबूत पॉलीगोन के बड़े ओवरलैप होंगे, जिसका अर्थ है बड़े क्षेत्र जहां एक पड़ोस का बहुभुज दूसरे को ओवरलैप करता है। मैं केवल इन का चयन करना चाहता हूं।
बस ओवरलैप के नीचे की तस्वीर देखें। कल्पना कीजिए कि मैं निचले बाएँ कोने में केवल नीले बहुभुज का चयन करना चाहता था।
मैं क्षेत्रों को देख सकता था, लेकिन कभी-कभी संकीर्ण लोग इतने लंबे होते हैं कि वे नीले बहुभुज के रूप में बड़े होते हैं। मैंने क्षेत्र / परिधि का अनुपात करने की कोशिश की है, लेकिन मिश्रित परिणाम भी मिले हैं।
मैंने भी उपयोग करने की कोशिश की है ST_MinimumClearance
, लेकिन कभी-कभी बड़े क्षेत्रों में एक संकीर्ण भाग जुड़ा होता है, या दो बहुत करीब कोने होते हैं।
अन्य दृष्टिकोणों का कोई विचार?
अंत में मेरे लिए सबसे अच्छा काम करने वाला एक नकारात्मक बफर का उपयोग कर रहा था, जैसा कि नीचे @Cyril और @FGreg द्वारा सुझाया गया है।
मैंने कुछ इस तरह इस्तेमाल किया:
ST_Area(ST_Buffer(geom, -10)) as neg_buffer_area
मेरे मामले में, इकाइयां मीटर थीं, इसलिए 10 मीटर नकारात्मक बफर।
संकीर्ण बहुभुजों के लिए, यह क्षेत्र शून्य लौट आया (भी, ज्यामिति खाली होगी)। फिर मैंने इस कॉलम का इस्तेमाल संकीर्ण बहुभुजों को छानने के लिए किया।