U kunt de zogenaamde Haversine-formule gebruiken .
$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";
Waar $lat
en $lng
zijn de coördinaten van je punt, en lat/lng zijn je tabelkolommen. Het bovenstaande geeft een overzicht van de locaties binnen een bereik van 5 nm. Vervang 3959
door 6371
om te wijzigen in kilometers.
Deze link kan handig zijn:https://developers.google.com/maps/articles/phpsqlsearch_v3
Edit:ik had niet gezien dat je Java noemde. Dit voorbeeld is in PHP, maar de vraag is nog steeds wat je nodig hebt.