最基本的SQL都没弄明白,麻烦领导多监督
kflizongbao opened this issue · 0 comments
kflizongbao commented
$model = $model->field(['*', self::distanceSql($latitude, $longitude)])->order('distance asc');
/**
* 获取排序sql
* @param $latitude
* @param $longitude
* @return mixed
*/
public static function distanceSql($latitude, $longitude)
{
$field = "(round(6367000 * 2 * asin(sqrt(pow(sin(((latitude * pi()) / 180 - ({$latitude} * pi()) / 180) / 2), 2) + cos(({$latitude} * pi()) / 180) * cos((latitude * pi()) / 180) * pow(sin(((longitude * pi()) / 180 - ({$longitude} * pi()) / 180) / 2), 2))))) AS distance";
return $field;
}