मैं छोटे खंडों को एक बड़े खंड के साथ मिलाने की कोशिश कर रहा हूं जो वे संभवतः सबसे अधिक संबंधित हैं: अपेक्षाकृत करीब, समान असर, और एक दूसरे का सामना करना।
यहां मेरे पास मौजूद डेटा का एक विशिष्ट उदाहरण है:
यहाँ मुझे ६५२ से १ ९, ९ ६ ९ के मैच सेगमेंट की जरूरत है, जबकि 70११ और matching० matching में कुछ भी मेल नहीं खा रहा है।
मैंने अलग-अलग तरीकों की तलाश की है, विशेष रूप से हॉसडॉर्फ दूरी ( यहां के उत्तरों के आधार पर )। मैंने PostGIS का उपयोग करके इसकी गणना की, लेकिन मुझे अजीब परिणाम मिल रहे हैं: मुझे मिलने वाली सबसे छोटी दूरी 707 और 198985 के बीच है, और 652 में 198969 की तुलना में 198969 तक अधिक दूरी है (उदाहरण के लिए यदि आवश्यक हो तो मैं क्वेरी और परिणाम जोड़ सकता हूं)।
क्या हॉसडॉर्फ वास्तव में इसे हल करने का सही तरीका है? क्या अन्य दृष्टिकोण हैं? मैंने बस उन मापदंडों पर जाँच का एक सेट बनाने के बारे में सोचा था, जिनका मैंने उल्लेख किया है (दूरी, असर, आदि) एक - दूसरे का सामना करना पड़ा।
अद्यतन: मुझे एक ऐसा तरीका मिला, जो स्वीकार्य समझौता जैसा लगता है:
- मैं पहली बार नीले रंग के 10 निकटतम काले खंडों को खोजता हूं जिन्हें मैं मैच करने की कोशिश कर रहा हूं (पोस्टजीआईएस
<->
ऑपरेटर का उपयोग करके ) जो 10 मीटर से कम दूरी पर हैं। - मैं तब काले खंडों में से प्रत्येक पर नीले खंड के अंतिम बिंदुओं को खोजकर एक नया खंड बनाता हूं (उपयोग करते हुए
ST_ClosestPoint
) और उन परिणामों को फ़िल्टर करता हूं जिनकी लंबाई नीले रंग के 90% से कम है (जिसका अर्थ खंड नहीं हैं सामना करना पड़ रहा है, या कि असर अंतर ~ 20 ° से अधिक है) - फिर मुझे दूरी और हौसडॉर्फ दूरी के अनुसार पहला परिणाम मिलता है, यदि कोई हो।
ऐसा करने के लिए कुछ बढ़िया ट्यूनिंग हो सकती है लेकिन यह अभी के लिए एक स्वीकार्य काम करने लगता है। अभी भी किसी भी अन्य तरीकों या अतिरिक्त जांच की तलाश में अगर मैं कुछ किनारे के मामलों को याद करता हूं।