Поиск ближайших точек по координатам

http://zcentric.com/2010/03/11/calculate-distance-in-mysql-with-latitude-and-longitude/

SELECT office_address, office_coordinates, ((ACOS(SIN($lat * PI() / 180) * SIN(lat * PI() / 180) + COS($lat * PI() / 180) * COS(lat * PI() / 180) * COS(($lon - lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS `distance` FROM `members` HAVING `distance`<=100 ORDER BY `distance` ASC

в yii2:

$query->select("*, ((ACOS(SIN({$params['lat']} * PI() / 180) * SIN(lat * PI() / 180) + COS({$params['lat']} * PI() / 180) * COS(lat * PI() / 180) * COS(({$params['lon']} - lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance")
->having("distance <= {$params['radius']}") ->orderBy("distance ASC");