按经纬度产生的距离来排序

 $lng = $request->input('longitude');

$lat = $request->input('latitude');

$data = $data->select('*')->addSelect(\DB::raw("acos(cos(" . $lat . "*pi()/180)*cos(latitude*pi()/180)*cos(" . $lng . "*pi()/180-longitude*pi()/180)+sin(" . $lat . "*pi()/180)*sin(latitude * pi()/180)) * 6367000 AS distance"))->orderBy('distance', 'ASC');

表的字段有:longitude、latitude

通过用户传入的经纬度,和符合条件的列表里的经纬度,进行计算,得出 distance,

并对距离distance进行排序

你可能感兴趣的:(PHP,java,开发语言)