Можете да използвате това, което се нарича формулата на 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";
Където $lat
и $lng
са координатите на вашата точка, а lat/lng са колоните на вашата таблица. Горното ще изброи местоположенията в рамките на 5 nm диапазон. Заменете 3959
от 6371
за промяна на километри.
Тази връзка може да бъде полезна:https://developers.google.com/maps/articles/phpsqlsearch_v3
Редактиране:Не видях да споменавате Java. Този пример е в PHP, но заявката все още е това, от което се нуждаете.