मैं डंडस मैप्स का उपयोग कर रहा हूं और दुनिया का नक्शा आकर्षित करने का प्रयास कर रहा हूं जहां देशों को उन क्षेत्रों में बांटा गया है जो व्यवसाय कार्यान्वयन के लिए विशिष्ट हैं।भौगोलिक आकार समूह
मेरे पास दुनिया के प्रत्येक देश के लिए आकार डेटा (अंक और सेगमेंट) है। मैं एक क्षेत्र के देशों के लिए एक नए क्षेत्र के आकार के लिए सभी बिंदुओं और खंडों को जोड़कर देशों को क्षेत्रों में जोड़ सकता हूं।
foreach(var region in GetAllRegions()){
var regionShape = new Shape { Name = region.Name };
foreach(var country in GetCountriesInRegion(region.Id)){
var countryShape = GetCountryShape(country.Id);
regionShape.AddSegments(countryShape.ShapeData.Points, countryShape.ShapeData.Segments);
}
map.Shapes.Add(regionShape);
}
समस्या यह है कि देश सीमा रेखाएं अभी भी एक क्षेत्र के भीतर दिखाई देती हैं और मैं उन्हें हटाना चाहता हूं ताकि केवल क्षेत्रीय सीमाएं दिखाई दें।
डुंडस बहुभुज एक ही बिंदु पर शुरू और समाप्त होना चाहिए। यह देश के सभी आकारों के लिए मामला है।
- निर्धारित जहां देश की सीमाओं एक क्षेत्रीय सीमा पर एक दूसरे को काटना, ताकि मैं क्षेत्रीय सीमा क्षेत्रों में शामिल हो सकते हैं: अब मैं एक एल्गोरिथ्म है कि कर सकते हैं की जरूरत है।
- निर्धारित करें कि कौन सी देश सीमाएं क्षेत्रीय सीमाएं नहीं हैं ताकि मैं उन्हें त्याग सकूं।
- परिणामस्वरूप क्षेत्रीय बिंदुओं को क्रमबद्ध करें ताकि वे अनुक्रमिक रूप से आकार सीमाओं का वर्णन कर सकें।
नीचे वह जगह है जहां मैं मानचित्र के साथ अब तक पहुंच गया हूं। आप देख सकते हैं कि देश सीमाओं को अभी भी हटा दिया जाना चाहिए। उदाहरण के लिए, मंगोलिया और चीन के बीच की सीमा को त्याग दिया जाना चाहिए जबकि मंगोलिया और रूस के बीच की सीमा को बरकरार रखा जाना चाहिए।
मुझे क्षेत्रीय सीमा को बनाए रखने की आवश्यकता यह है कि क्षेत्र के रंग सूचनाओं को संदेश देने में महत्वपूर्ण होंगे लेकिन निकटवर्ती क्षेत्र एक ही रंग हो सकते हैं। क्षेत्र देशों को शामिल या बहिष्कृत करने के लिए बदल सकते हैं और यही कारण है कि क्षेत्रीय आकार गतिशील होना चाहिए।
संपादित करें: अब मुझे पता है कि मैं जो देख रहा हूं वह बहुभुज का यूनियन है। एसक्यूएल सर्वर 2008 में स्थानिक कार्यों का उपयोग करके डेविड लीन explains how to do it जो एक विकल्प हो सकता है लेकिन मेरे प्रयासों को रोक दिया गया है क्योंकि परिणामस्वरूप बहुभुज संघ इतना जटिल है कि एसक्यूएल 43,680 अक्षरों पर इसे छोटा कर देता है। अब मैं इसके लिए एक समाधान खोजने की कोशिश कर रहा हूं या कोड में संघ करने का एक तरीका ढूंढ रहा हूं।
दरअसल। अब मुझे बस एक एल्गोरिदम चाहिए। – grenade
बस अपना जवाब कुछ बार पढ़ें और मुझे लगता है कि मैं समझता हूं कि आप क्या कह रहे हैं। अब इसे जाने वाला है। – grenade
मुझे यह समझने के लिए मिल गया है कि कौन से शिखर साझा किए जाते हैं। बस एल्गोरिदम के माध्यम से काम करना जो यूनियन पॉलीगॉन को सही क्रम में unshared शीर्षकों को जोड़ता है ... – grenade