2009-07-24 9 views
5

में फैल गए मैं अक्षांश, देशांतर जोड़े के रूप में बहुभुज अंक की एक डेटाबेस है और मैं अगर अक्षांश दिया परीक्षण की आवश्यकता संभालती है, एलएनजी बिंदु बहुभुज में से किसी के अंदर है।प्वाइंट कि बहुभुज कि आधी रात से दोपहर तक का समय

these समेत कई एल्गोरिदम हैं लेकिन यदि बहुभुज एंटीमेरिडियन (न्यूजीलैंड के तट से बाहर), जहां रेखांश +180 डिग्री पूर्व से -180 डिग्री पश्चिम तक फैलता है) तो वे काम नहीं करते हैं।

एक समाधान जो मैं देखता हूं वह यह पता लगाने के लिए है कि क्या बहुभुज एंटीमेरिडियन को जोड़ता है और यदि इसे दो बहुभुज में विभाजित करता है, तो प्रत्येक तरफ एक, फिर उनमें से प्रत्येक को जांचें।

उत्तर

2

अन्य (सरल) विकल्प, IMO, केवल उस विशेष मामले के लिए परीक्षण करने के लिए है, और अगर यह मौजूद है, एक आपकी क्वेरी बिंदु और बहुभुज को बदलने लागू होते हैं। उदाहरण के लिए, यदि यह एंटी-मेरिडियन फैलाता है, तो बस एक विशिष्ट देशांतर राशि से सबकुछ अनुवाद करें ताकि इसे मेरिडियन नहीं फैलाया जा सके और अपना मानक परीक्षण किया जा सके।

1

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

+0

सहमत - गोलाकार polys के रूप में उनका इलाज करना सबसे अच्छा है। हालांकि, संलग्न क्षेत्र हमेशा अस्पष्ट होता है जब तक कि आप एक घुमावदार सम्मेलन का पालन न करें (यानी एक सीसीडब्ल्यू ट्रैवर्सल से जुड़े क्षेत्र के रूप में परिभाषित करें)। –

0

सुझावों के लिए धन्यवाद। अंत में मैं जिस बहुभुज के खिलाफ परीक्षण कर रहा हूं वह एक आयताकार है, इसलिए यदि यह एंटीमेरिडियन (इसमें विभिन्न संकेतों की लम्बाई है) तो इसे दो बहुभुजों में काट लें, प्रत्येक तरफ एक और उन वस्तुओं के लिए क्वेरी जो उनमें से किसी एक को छेड़छाड़ करते हैं।

0

तुम सिर्फ 360 जोड़कर गिनीकृमि मध्याह्न के सकारात्मक पक्ष को सभी देशांतर निर्देशांक 'चाल' नहीं बना सकते हैं? उदाहरण: समन्वय -178 डिग्री होता है, फिर + 182 डिग्री होता है, -1 डीईजी 35 9 डीईजी बन जाता है, 1 डिग्री 361 आदि बन जाता है ...

मुझे नहीं पता कि इससे ध्रुवों को कैसे प्रभावित किया जाएगा, लेकिन यह शायद कुछ भी करने के लिए ठीक काम करेगा ध्रुवों को छूएं नहीं।

+0

मेरे पास हर जगह निजीकृत टिप्पणी नहीं है, इसलिए मेरा जवाब देने का एकमात्र तरीका जवाब देना है ... –

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