जब ये सुविधाएँ एंटीमैरिडियन (° 180 ° देशांतर) पर फैली हों, तो भौगोलिक विशेषताओं (रेखाओं, बहुभुजों और उनके मल्टीपार्ट समतुल्य) को संग्रहीत करने के लिए सबसे अच्छा अभ्यास क्या है और इसे जियोजन्स के रूप में क्लाइंट वेब से भेजने और प्राप्त करने की आवश्यकता है?
मैं एक सर्वर-साइड वेब एपीआई पर पोस्टग्रेज / पोस्टगिस डेटाबेस के समर्थन के साथ ऐतिहासिक और पूर्वानुमान उष्णकटिबंधीय चक्रवात पटरियों और पवन रेडी के साथ काम करने के लिए काम शुरू कर रहा हूं। प्रशांत महासागर में कई चक्रवातों में एंटीमेडिरियन को पार करने की दुर्भाग्यपूर्ण प्रवृत्ति होती है, कभी-कभी उनके जीवन काल में कई बार:
एंटीमैरिडियन के पास रहने वाले न्यू जोसेन्डर के रूप में, मैंने कुछ कोपिंग रणनीतियों के लिए क्षेत्रीय डेटा में अक्सर इस समस्या का सामना किया है, लेकिन मैं वास्तव में यह जानना चाहूंगा कि सबसे अच्छा अभ्यास क्या माना जाता है। दुर्भाग्यवश एंटीमैरिडियन टैग किए गए कोई मौजूदा प्रश्न नहीं हैं , इसलिए संबंधित प्रश्नों की खोज करना कठिन है। जिन सवालों को मैंने इस समस्या से जूझते देखा है, वे सभी बहुत ही विशिष्ट-विशिष्ट सलाह लेना चाहते हैं। यह प्रश्न संक्षेप में एक सीमा के साथ एक पृथ्वी-फैले हुए जेजोन बहुभुज के मामले के लिए एंटीमारिडियन पर चर्चा करता है। यह सवाल मैं क्या पूछ रहा हूँ के करीब है।
मुझे एक स्थानिक डेटाबेस में ऐतिहासिक और पूर्वानुमान चक्रवातों को संग्रहीत करने की आवश्यकता है, लेकिन मुझे आशा है कि एंटीमिडिडियन के साथ मुद्दे होंगे। उदाहरण के लिए, अक्षांश / देशांतर पर शुरू होने वाली रेखा (0,179)
और (0,-179)
इसकी दिशा के संबंध में अस्पष्ट है: चाहे वह एंटीमाइरिडियन में छोटा रास्ता ले, या पूरे ग्रह के चारों ओर "लपेटता" हो। इस तरह के पथ को एक स्थानिक डेटाबेस में संग्रहीत किया जाना चाहिए (विशेष रूप से मैं पोस्टजीआईएस के साथ काम कर रहा हूं लेकिन मुझे उम्मीद है कि समाधान पर्याप्त सामान्य है) कुछ विचार जो मेरे पास हैं:
- जियोमेट्री की सुविधा में कोई बदलाव न करें और ग्राहक अनुप्रयोगों के लिए अस्पष्टता को स्थानांतरित करें।
- एंटीमैरिडियन पर एक ब्रेक के साथ एक मल्टीमार्ट ज्यामिति में एंटीमरीडियन को पार करने वाली किसी भी सुविधा को विभाजित करें । ( जियोसन विनिर्देशन CRS नाम का समर्थन करता है ।)
- विभिन्न चक्रवात बेसिनों या महासागरीय क्षेत्रों के लिए गैर-वैश्विक अनुमानों के साथ काम करना जिनके पास इस तरह की असंगति नहीं है
- इस तथ्य को उजागर करते हुए कि पूरे ग्रह की यात्रा करने के लिए एक चक्रवात कभी नहीं देखा गया है,
(90,-90)
एक 360 ° चरण (अन्य -180-180 ° रखते हुए) द्वारा अक्षांश सीमा में शुरू होने वाले चक्रवातों के निर्देशांक को संग्रहीत करें। - इस तथ्य को उजागर करते हुए कि एक चक्रवात अफ्रीका के दक्षिणी सिरे के दक्षिण में बहुत कम संभावना है, 30 ° देशांतर (उपरोक्त मानचित्र में) पर एक ब्रेक का उपयोग करें ।
- निर्देशांक को EPSG 4326 , जैसे> 180 ° और <-180 ° की वैध सीमा से आगे बढ़ाने की अनुमति दें , जो एंटीमाइरिडियन से गुजरती हैं।
- डेल्टा एन्कोडिंग , TopoJSON में जैसे (उदाहरण के लिए शुरू
(0,-179)
और फिर अगले समन्वय-3
अक्षांश पश्चिम में है)। मुझे पता नहीं है कि PostGIS में डेटा संग्रहीत करते समय इसे लागू करना है या नहीं, लेकिन क्लाइंट एप्लिकेशन को डेटा भेजने के लिए यह एक बढ़िया समाधान है। - वेक्टर संकेतन या ध्रुवीय निर्देशांक के कुछ रूप। (बल्कि मुश्किल और असामान्य लगता है।)
इनमें से, मुझे विचार 2-5 पसंद नहीं हैं क्योंकि वे सामान्य नहीं हैं, लेकिन मैं उन्हें पसंद करता हूं क्योंकि वे मेरे विशेष एप्लिकेशन के लिए कुछ अर्थ रखते हैं। केवल प्रशांत महासागर में डेटा से निपटने वाले अनुप्रयोगों के लिए, वे बहुत अधिक समझ में आ सकते हैं, इसलिए मैं उन्हें विकल्प के रूप में पूरी तरह से छूट नहीं देना चाहता।
विचार 6 और 7 को टॉम मैकवर्थ के ब्लॉग से हटा दिया गया था , जो पढ़ने लायक है, लेकिन एंटीमेरिडियन के संबंध में निर्णायक नहीं है।
Idea 4 का उपयोग जियोग्राफिका 'GeodesicLinesToGISPython
द्वारा किया जाता है , जो बदले में fiona.transform.transform_geom
एक 360 ° एंटीमिरिडियन ऑफसेट के साथ उपयोग कर रहा है । बदले में, फियोना OGR का उपयोग कर रहा है -wrapdateline
। मुझे लगता है कि यह एक बहुत ही ठोस मिसाल है और वास्तव में सामान्य है।
भंडारण के मुद्दे के साथ संयोजन के रूप में, मुझे यह विचार करने की आवश्यकता है कि इस तरह की विशेषताओं को क्लाइंट अनुप्रयोगों को कैसे भेजा जाना चाहिए, और मेरे आवेदन को कैसे इसे वापस पोस्ट किए गए डेटा पर विचार करना चाहिए (उदाहरण के लिए एक मानव भविष्यवक्ता प्रशांत क्षेत्र में एक चक्रवात के पूर्वानुमान ट्रैक को बदलते हुए)। इंटरचेंज फॉर्मेट शायद जियोजॉन होगा, लेकिन ऐसा होना जरूरी नहीं है।
दुर्भाग्य से जियोजन्स विनिर्देश एंटीमैरिडियन मुद्दों के बारे में स्पष्ट नहीं है। विकिपीडिया से यह :
कई भौगोलिक सॉफ़्टवेयर लाइब्रेरी या डेटा प्रारूप दुनिया को एक आयत के रूप में प्रस्तुत करते हैं; बहुत बार यह आयत 180 वें मध्याह्न रेखा पर विभाजित होती है। यह अक्सर 180 वें मध्याह्न रेखा पर सरल कार्य (जैसे क्षेत्र, या रेखा का प्रतिनिधित्व) करना असंभव बनाता है। कुछ उदाहरण:
GeoJSON विनिर्देशन अपने विनिर्देश में 180 वें मध्याह्न की हैंडलिंग का उल्लेख नहीं करता है, इस प्रकार, 180 वीं मध्याह्न रेखा को पार करने वाली रेखाओं का प्रतिनिधित्व केवल दुनिया भर में जाने के रूप में व्याख्या किया जा सकता है।
OpenStreetMap में, क्षेत्रों (रूस की सीमा की तरह) 180 वें मध्याह्न रेखा पर विभाजित हैं।
मेरा पढ़ना यह है कि जियोजन्स में एंटीमेडियन-स्पैनिंग विशेषताओं का कोई विशेष मानक प्रतिनिधित्व नहीं है, और यह जानबूझकर अस्पष्ट (बहु-भाग ज्यामितीय शायद समस्या को हल करेगा)। इसी तरह OpenStreetMap में एंटीमैरिडियन में ज्यामिति विभाजन होते हैं, हालांकि मुझे नहीं पता कि इस तरह की विभाजन विशेषताएं मल्टीपार्ट हैं या वास्तव में असतत रिकॉर्ड हैं।
यह बल्कि समस्याग्रस्त लगता है, विशेष रूप से बाउंडिंग बॉक्स या अन्य स्थानिक अनुरोधों के परिप्रेक्ष्य से जो इस लाइन को फैलाते हैं, लेकिन इनपुट और पार्सिटाइजिंग इनपुट और ज्यामितीयता को अपडेट करने के लिए किसी भी अपडेट में भी। यही कारण है कि मैं एक सर्वोत्तम अभ्यास निर्धारित करने की कोशिश कर रहा हूं जिसे मैं करने की कोशिश कर सकता हूं।