Anda dapat menggunakan apa yang disebut rumus Haversine .
$sql = "SELECT *, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";
Dimana $lat
dan $lng
adalah koordinat titik Anda, dan lat/lng adalah kolom tabel Anda. Di atas akan mencantumkan lokasi dalam rentang 5 nm. Ganti 3959
oleh 6371
untuk mengubah ke kilometer.
Tautan ini mungkin berguna:https://developers.google.com/maps/articles/phpsqlsearch_v3
Sunting:Saya tidak melihat Anda menyebutkan Java. Contoh ini dalam PHP tetapi kuerinya tetap yang Anda butuhkan.