2013-03-08 7 views
5

में बिंदु क्या है, मैं केवल सी # का उपयोग कर सर्वर पक्ष पर पता लगाना चाहता हूं, चाहे अक्षांश/देशांतर आधारित समन्वय अक्षांश/देशांतर आधारित बिंदुओं से बने क्षेत्र (बहुभुज) के भीतर है या नहीं। मेरा मानना ​​है कि ऐसा करने का सही तरीका raycasting है, लेकिन शायद वहाँ पहले से ही एक सी # कार्यान्वयन है क्योंकि यह मामूली नहीं है?पता लगाएँ कि अक्षांश/रेखांश आधारित पॉलीगॉन

इसके अलावा, मैं समझता हूं कि SQL सर्वर में कुछ ज्यामिति फ़ंक्शन जैसे STIntersects हैं लेकिन इसका उपयोग करने के लिए मुझे SQL Server 2008 दोनों चलाना आवश्यक है और प्रत्येक चेक में डेटाबेस कनेक्शन शामिल होगा जो अवांछनीय है।

+0

एक और अधिक जेनेरिक एल्गोरिदम पूछना होगा, या "एक अनियमित आकार वाले बहुभुज के अंदर कोई बिंदु गिरने पर कैसे पता लगाया जाए" की खोज करें। मैं वास्तव में नहीं जानता, मैं शायद स्क्रैच से कुछ लिख सकता हूं, लेकिन यह निश्चित रूप से कोड का सबसे कुशल टुकड़ा नहीं होगा ... वैसे भी पहले नहीं। – Nevyn

उत्तर

0

मैंने थोड़ी देर के लिए इंटरनेट पर चारों ओर रख दिया और this link पाया।

उदाहरण सी में लिखा गया है, लेकिन ऐसा लगता है कि इसे आसानी से सी # और लांग/लैट निर्देशांक के साथ काम करने के लिए अनुकूलित किया जा सकता है। आपको क्रॉसओवर लाइनों को ध्यान में रखना होगा (एनएस/ईडब्लू), और जहां आवश्यक हो, क्षतिपूर्ति करने के लिए कोड जोड़ें, या तो फ़ंक्शन चलाने से पहले लेटलॉन्ग मानों का दशमलव रूपांतरण करें (पश्चिम और दक्षिण मूल्य < 0 के साथ प्रदर्शित होते हैं)।

0

चूंकि एक क्षेत्र विमान के लिए स्थानीय रूप से भिन्न है, इसलिए आप कार्टेसियन विमान पर काम करने वाले किसी भी एल्गोरिदम का उपयोग कर सकते हैं, उदा। this SO question। यदि आपके बहुभुज में ध्रुव शामिल है तो आपको केवल समन्वय का अनुवाद करना होगा। आपके उपयोग के मामले के आधार पर, हो सकता है कि आप उन इनपुट को अस्वीकार कर सकें।

+0

शायद यहां ध्यान देने योग्य मूल्य है कि ज्यामिति 180 मेरिडियन (यानी वह बिंदु जहां कार्टेशियन विमान लपेटता नहीं है लेकिन दुनिया करता है) को सिरदर्द का कुछ भी हो सकता है। जीआईएस के लिए पॉइंट-इन-पॉलीगॉन 180-लपेट-जागरूक होने की आवश्यकता है अन्यथा आप बहुत ही अजीब परिणाम प्राप्त कर सकते हैं। – jlmt

संबंधित मुद्दे