Du kan bruge det, der kaldes Haversine-formlen .
$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";
Hvor $lat
og $lng
er koordinaterne for dit punkt, og lat/lng er dine tabelkolonner. Ovenstående vil angive placeringerne inden for et område på 5 nm. Erstat 3959
af 6371
for at skifte til kilometer.
Dette link kunne være nyttigt:https://developers.google.com/maps/articles/phpsqlsearch_v3
Edit:Jeg så ikke, at du nævnte Java. Dette eksempel er i PHP, men forespørgslen er stadig, hvad du har brug for.