मैंने 20 साल पहले डेस्कटॉप जीआईएस डिजाइन करते समय इस प्रश्न की बिल्कुल जांच की थी। हमें पॉइंट-टू-पॉइंट दूरी को अंतःक्रियात्मक रूप से खोजने की आवश्यकता थी; हमारा लक्ष्य हजारों अंकों के लिए 1/2 सेकंड से भी कम समय में गणना करना था। परीक्षण (एक 25 मेगाहर्ट्ज 486 पीसी पर!) ने दिखाया कि हम सभी दूरियों की गणना कर सकते हैं, ठीक उसी तरह जैसे आप वर्णन करते हैं (सरल स्पष्ट एल्गोरिथ्म के साथ), इतनी जल्दी कि यह एक अधिक परिष्कृत समाधान बनाने के लिए कोई मतलब नहीं था, जैसे कि क्वाडट्री संरचना। ।
एक एकल "जांच" बिंदु पर दूरियों की गणना के लिए आपके विकल्पों में शामिल हैं (क) जांच बिंदु पर केंद्रित एक समभुज प्रक्षेपण का उपयोग करके सभी बिंदुओं को प्रक्षेपित करना या (ख) एक गोलाकार पृथ्वी मॉडल को अपनाना और हैवरसाइन सूत्र का उपयोग करना । यदि आप एक दीर्घवृत्त मॉडल की सटीकता की आवश्यकता है तो पहला उपयुक्त है। या तो मामले में गणना काफी तेजी से होती है, संभवतः 1000 से कम टिक्स ले रहे हैं: आप एक सिंगल प्रोसेसर के साथ एक मिलियन पॉइंट सेकंड के आसपास क्वेरी कर सकते हैं।
आपके लिए काफी उपवास है? यदि नहीं, तो ब्रूट-फोर्स विधि आसानी से समानांतर हो जाती है और प्रोसेसर की संख्या के साथ सीधे स्केल करती है: बस प्रोसेसर के बीच के बिंदुओं को विभाजित करें और फिर प्रत्येक प्रोसेसर द्वारा पाए गए निकटतम निकटतम की अंतिम तुलना करें।
यदि आपको तेजी से जाने की आवश्यकता है, तो आप स्क्रीन अंक के लिए विभिन्न सन्निकटन का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप -88 और +88 डिग्री अक्षांश के बीच हैं और अब तक मिला निकटतम बिंदु 200 किमी दूर है, तो कोई भी बिंदु जिसका अक्षांश जांच बिंदु के अक्षांश से 2 डिग्री से अधिक है, संभवतः निकट नहीं हो सकता (क्योंकि कहीं पर भी) पृथ्वी, अक्षांश का एक अंश लगभग 110 किमी से अधिक है)। कई मामलों में इस तरह की प्री-स्क्रीनिंग आपको लाखों-करोड़ों बिंदुओं को एक सेकंड में संसाधित करने में सक्षम बनाती है।