Můžete použít to, co se nazývá Haversine vzorec .
$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";
Kde $lat
a $lng
jsou souřadnice vašeho bodu a lat/lng jsou sloupce vaší tabulky. Výše bude uveden seznam míst v rozsahu 5 nm. Nahraďte 3959
od 6371
přepnout na kilometry.
Tento odkaz by mohl být užitečný:https://developers.google.com/maps/articles/phpsqlsearch_v3
Edit:Neviděl jsem, že jsi zmínil Javu. Tento příklad je v PHP, ale dotaz je stále to, co potřebujete.