मेरे पास कुछ बहुभुज (भूगोल डेटा प्रकार का उपयोग करके संग्रहीत) के साथ एक पोस्टजीआईएस तालिका है। वे एक गोलाकार पृथ्वी पर क्षेत्रों का प्रतिनिधित्व करते हैं।
सभी बहुभुजों के बीच से चुने गए शीर्षकों की प्रत्येक जोड़ी के लिए, मैं यह गणना करना चाहता हूं कि क्या वे दो कोने एक दूसरे के लिए "दृश्यमान" हैं। (वहाँ n * ( n -1) / 2 ऐसी जोड़ियाँ हैं, जहाँ n तालिका में सभी बहुभुजों की कुल विशिष्ट संख्याएँ हैं।) "एक दूसरे को दृश्यमान" करके, मेरा मतलब है कि महान-वृत्त पथ। दो कोने टेबल में किसी भी बहुभुज को नहीं काटते हैं।
उस संगणना को करने का सबसे तेज़ तरीका क्या है, अधिमानतः PostgreSQL / PostGIS में?
मुझे कुछ ऐसा मिला है जो काम करता है, लेकिन यह धीमा है। मैं बस सभी जोड़ियों पर अच्छी तरह से पुनरावृति करता हूं और देखता हूं कि क्या उनके बीच की लाइनस्ट्रीमिंग किसी बहुभुज को काटती है या नहीं। (PostGIS का भूगोल डेटा प्रकार मेरे लिए गोले पर सभी कठिन गणित को संभालता है।) तो मुझे आश्चर्य है कि अगर कोई चतुर डेटा संरचना या एल्गोरिथ्म है जो चीजों को गति दे सकता है।