Ну, это действительно зависит от того, какую базу данных вы используете.
общая техника заключается в использовании функции значения масштабатора, которая использует формулу, такую как:
distance = ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lon1))*6371
тогда вы можете написать запрос как:
select *
from locations
where mydistancefunction(lat1,lng1,locations.lat,locations.lng) < @radius