अक्षांशों के बीच की दूरी की तुलना करके शुरू करें। अक्षांश का प्रत्येक अंश लगभग 69 मील (111 किलोमीटर) अलग है। ध्रुवों पर भूमध्य रेखा पर 69.407 (111.699 किमी) के लिए 68.703 मील (110.567 किमी) की सीमा (पृथ्वी की थोड़ी दीर्घवृत्ताकार आकृति के कारण) में भिन्नता है। दो स्थानों के बीच की दूरी उनके अक्षांशों के बीच की दूरी के बराबर या बड़ी होगी।
ध्यान दें कि यह अनुदैर्ध्य के लिए सही नहीं है - देशांतर के प्रत्येक डिग्री की लंबाई अक्षांश पर निर्भर है। हालांकि, यदि आपका डेटा किसी क्षेत्र (उदाहरण के लिए एक एकल देश) से जुड़ा हुआ है - तो आप लॉन्गिट्यूड के लिए भी न्यूनतम और अधिकतम सीमा की गणना कर सकते हैं।
जारी रहेगा एक कम सटीकता, तेजी से दूरी की गणना जो गोलाकार पृथ्वी मानती है:
निर्देशांक {lat1, lon1} और {lat2, lon2} के साथ दो बिंदुओं के बीच की बड़ी सर्कल दूरी d के लिए दी गई है:
d = acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon1-lon2))
गणितीय रूप से समतुल्य सूत्र, जो कम दूरी के लिए गोल त्रुटि के अधीन है:
d = 2*asin(sqrt((sin((lat1-lat2)/2))^2 +
cos(lat1)*cos(lat2)*(sin((lon1-lon2)/2))^2))
d रेडियन में दूरी है
distance_km ≈ radius_km * distance_radians ≈ 6371 * d
(6371 किमी पृथ्वी की औसत त्रिज्या है )
यह विधि कम्प्यूटेशनल आवश्यकताओं की नकल है। हालांकि परिणाम छोटी दूरी के लिए बहुत सटीक है।
फिर, यदि यह दी गई दूरी में है, तो कम या ज्यादा, अधिक सटीक विधि का उपयोग करें।
भौगोलिक रूप से सबसे सटीक कार्यान्वयन मुझे पता है, हालांकि विन्सेन्टी व्युत्क्रम सूत्र का भी उपयोग किया जा सकता है।
यदि आप RDBMS का उपयोग कर रहे हैं, तो अक्षांश को प्राथमिक कुंजी के रूप में और देशांतर को द्वितीयक कुंजी के रूप में सेट करें। एक अक्षांश सीमा के लिए क्वेरी, या एक अक्षांश / देशांतर सीमा के लिए, जैसा कि ऊपर वर्णित है, फिर परिणाम सेट के लिए सटीक दूरी की गणना करें।
ध्यान दें कि सभी प्रमुख RDBMS के आधुनिक संस्करण भौगोलिक डेटा-प्रकार और प्रश्नों का मूल रूप से समर्थन करते हैं।