आपको Haversine सूत्र की खोज करनी चाहिए, लेकिन एक अच्छी शुरुआत हो सकती है:
- PHP, MySQL और Google Maps के साथ स्टोर लोकेटर बनाना - 'MySQL के साथ स्थान ढूँढना' अनुभाग देखें
- MySQL के साथ जियो/स्पेशियल सर्च
पहले url से उद्धृत:
यहां SQL कथन दिया गया है जो निकटतम 20 स्थानों को ढूंढेगा जो 25 मील से 37, -122 निर्देशांक के दायरे में हैं। यह उस पंक्ति के अक्षांश/देशांतर और लक्ष्य अक्षांश/देशांतर के आधार पर दूरी की गणना करता है, और फिर केवल पंक्तियों के लिए पूछता है जहां दूरी मान 25 से कम है, पूरी क्वेरी को दूरी से आदेश देता है, और इसे 20 परिणामों तक सीमित करता है। मील के बजाय किलोमीटर के आधार पर खोजने के लिए, 3959 को 6371 से बदलें।
SELECT
id,
( 3959
* acos( cos( radians(37) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians(-122) )
+ sin( radians(37) )
* sin( radians( lat ) )
)
)
AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;