मैं उन इमारतों के सेट को पुनः प्राप्त करना चाहूंगा जिन्हें मैं किसी दिए गए स्थान (बिंदु-तल, lng) और अभिविन्यास (कोणों का अंतराल) से देख सकता हूं + निश्चित रूप से एक दी गई गहराई (जैसे 100 मीटर) के साथ। आदर्श रूप में मैं कुछ इस तरह का उत्पादन करना चाहूंगा: कोण 1 से कोण 2 तक उपयोगकर्ता भवन 1 देख सकता है, कोण 2 से कोण 3 तक हम 2 का निर्माण कर रहे हैं।
डेटा = आकृति में एक शहर की इमारतों का प्रतिनिधित्व करने वाले बहुभुज।
इनपुट: किसी व्यक्ति की दृश्य धारणा का प्रतिनिधित्व करने के लिए एक स्थान और एक अभिविन्यास (कोण सीमा)।
आउटपुट :
संस्करण 1 - {बिल्डिंगआईडी} की सूची
संस्करण 2 (बेहतर) - {बिल्डिंगआईडी की सूची, प्रत्येक भवन के लिए दृश्य खंडों का सेट (इमारतों का कार्य)}
संस्करण 3 (आदर्श आउटपुट) - {भवन निर्माण, कोण श्रेणियों की एक सूची }। (छूट के लिए, कोण 1 से कोण 2 तक उपयोगकर्ता भवन 1 देख सकता है, कोण 2 से कोण 3 तक हम भवन 2 देख सकते हैं, आदि)
टूलबॉक्स I का उपयोग कर सकते हैं: पोस्टगिस, क्यूजी, रूबी, आर
आउटपुट v1 के लिए समाधान की शुरुआत:
- किसी दिए गए बिंदु और अभिविन्यास (कोण का अंतराल) और एक निश्चित त्रिज्या / गहराई (जैसे 100 मीटर) के लिए उपयोगकर्ता के सरलीकृत दृश्य क्षेत्र का प्रतिनिधित्व करते हुए एक त्रिकोण बनाना
- इमारतों के साथ कंप्यूटिंग चौराहा (जैसे STINTERSECTION) ) और दृश्य गुंजाइश। लेकिन एक इमारत दृश्य दायरे के बीच एक और एक शुद्ध चौराहे को छिपा सकती है और इमारतें दृश्यमान इमारतों को नहीं जोड़ सकती हैं। इस मुद्दे से निपटने की जरूरत है।
अद्यतन: संभावित समाधान 2
- किसी दिए गए बिंदु और अभिविन्यास (कोण का अंतराल) और एक निश्चित त्रिज्या / गहराई (जैसे 100 मीटर) के लिए उपयोगकर्ता के सरलीकृत दृश्य क्षेत्र का प्रतिनिधित्व करते हुए एक त्रिकोण बनाना - विभिन्न कोणों पर एन किरणों (लाइन) का निर्माण। स्कोप्स भरना।
- सभी इमारतों (POLYGONS) को SEGMENTS / LINES में बदलना
- प्रत्येक किरण को निकटतम SEGMENT और संबंधित भवन का पता लगाना। (ST_DISTANCE, ST_DWithin)
इस स्तर पर इसलिए हमारे पास किरणों की सूची और संबंधित बिल्डिंग आईडी होनी चाहिए।
- तब हम इस सूची {कोण की श्रेणियों, संबंधित भवन आईडी} को एकत्र कर सकते थे।
अधिक कुशल तरीके के बारे में कोई विचार?