Możesz użyć tak zwanej formuły 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";
Gdzie $lat
i $lng
to współrzędne punktu, a lat/lng to kolumny tabeli. Powyższe wyszczególni lokalizacje w zakresie 5 nm. Zastąp 3959
przez 6371
zmienić na kilometry.
Ten link może być przydatny:https://developers.google.com/maps/articles/phpsqlsearch_v3
Edycja:nie widziałem, że wspomniałeś o Javie. Ten przykład jest w PHP, ale zapytanie wciąż jest tym, czego potrzebujesz.