आपको पॉलीलाइन को + -180 डिग्री मेरिडियन पर तोड़ने की आवश्यकता है। इसके लिए अक्षांश को खोजने की आवश्यकता होती है, जिस पर पॉलीलाइन उस मेरिडियन को पार करती है। आपके जीआईएस में शायद ब्रेकिंग करने के तरीके हैं। यदि नहीं, तो संबंधित धागे में दिखाए गए कोड से एक सरल समाधान प्राप्त किया जा सकता है । यहाँ कुछ विवरण हैं।
पॉलीलाइन को वर्टिकल के अनुक्रम के रूप में दर्शाया जाता है , प्रत्येक को (lat, lon) रूप में दिया जाता है, -180 <= lon <= 180 के साथ। आपको क्रमिक जोड़ी की जांच करने की आवश्यकता है कि क्या यह + -180 मेरिडियन को पार करता है। एक त्वरित परीक्षण है: यदि अनुदैर्ध्य के अंतर का पूर्ण मान 180 या अधिक है, तो एक क्रॉसिंग है।
प्रत्येक सेगमेंट के भीतर (lat0, lon0) -> (lat1, lon1) जो + -180 मेरिडियन को पार करता है, आपको पॉलीलाइन को दो टुकड़ों में तोड़ने की जरूरत है जहां यह पार करता है।
कुंजी उचित सटीकता के साथ विराम बिंदु का अक्षांश खोज रही है। यह सबसे आसानी से एक गोलाकार पृथ्वी मॉडल के साथ किया जाता है: त्रुटि (एक अधिक सटीक दीर्घवृत्त मॉडल की तुलना में) नोटिस करने के लिए बहुत छोटा होगा।
प्रश्न के खंड को बिंदु 0 पर (lat0, lon0) से बिंदु 1 पर (lat1, lon1) पर जाने दें। दो बिंदुओं के बीच 3 डी में एक सीधी रेखा खंड को चलाने से ब्रेक प्वाइंट पाया जा सकता है जैसा कि कार्टेशियन निर्देशांक में दर्शाया गया है और यह पता लगाना है कि कहां समन्वय शून्य है। कार्तीय निर्देशांक हैं
(x0, y0, z0) = (cos(lon0)*sin(lat0), sin(lon0)*sin(lat0), cos(lat0))
और बिंदु 1 के लिए एक समान अभिव्यक्ति दे रहा है (X1, y1, z1)। समीकरण को हल करें
t * y0 + (1-t) * y1 = 0
टी के लिए; अर्थात्,
t = y1 / (y1 - y0).
चौराहे के निर्देशांक इसलिए हैं
(x, y, z) = (t * x0 + (1-t) * x1, 0, t * z0 + (1-t) * z1)
यह बिंदु (जो + -180 मेरिडियन के नीचे पृथ्वी की सतह के नीचे स्थित है) में अक्षांश समान है
lat2 = ATan(z/x).
ब्रेक प्वाइंट को दो तरीकों से दर्शाने की जरूरत है। टूटी हुई पॉलीलाइन के पहले भाग को समाप्त करने के लिए (lat0, lon0) के बाद इसे संलग्न करते समय यदि lon0 नकारात्मक है और अन्यथा (lat2, 180) का उपयोग करें (lat2, -180)। टूटी हुई पॉलीलाइन के दूसरे भाग को शुरू करने के लिए इसे (lat1, lon1) से पहले संलग्न करते समय एक समान नियम का पालन करें।
असाधारण मामलों में, एक या दोनों बिंदु 0 और बिंदु 1 + -180 मेरिडियन पर हो सकते हैं। इस प्रक्रिया का अनुसरण करने से आप अपने द्वारा बनाए गए पॉलीलाइन टुकड़ों में से एक शून्य-लंबाई वाला खंड रख सकते हैं। यदि यह जीआईएस के साथ समस्या पैदा कर सकता है, तो इस स्थिति के लिए परीक्षण करें।
ध्यान दें कि एक पॉलीलाइन इस मेरिडियन को एक से अधिक बार पार कर सकती है। इसलिए, पहले ब्रेक और पॉलीलाइन को दो भागों में तोड़ने के बाद, आपको दूसरे भाग को उसी तरह से संसाधित करने की आवश्यकता है।