दो निर्देशांकों के बीच की दूरी की गणना करना वास्तव में हैवरसाइन सूत्र को देखते हुए उतना कठिन नहीं है।
SELECT
-- stuff here
, ( 6371000 * acos( cos( radians(45.815005) ) * cos( radians( stuff.lat ) ) * cos( radians( stuff.lng ) - radians(15.978501) ) + sin( radians(45.815005) ) * sin(radians(stuff.lat)) ) ) AS distance
FROM
stuff
HAVING
distance < 500
मूल उत्तर से आवश्यक परिवर्तन:
-
मूल उत्तर में दिए गए स्थिरांक ने मील या किलोमीटर के मानों की आपूर्ति की। मैंने मीटर के साथ काम करने के लिए यहां स्थिरांक को बदल दिया है।
-
आपके निर्देशांक का उपयोग करने के लिए स्थिरांक बदल गए हैं। हो सकता है कि आप उन पैरामीटर को स्थिरांक के बजाय बनाने के लिए क्वेरी को थोड़ा और अनुकूलित करना चाहें।
-
having500 मीटर की आपकी इच्छा को दर्शाने के लिए अभिव्यक्ति में थोड़ा बदलाव आया। दोबारा, यह कुछ ऐसा हो सकता है जिसे आप पैरामीटर बनाना चाहते हैं।