//距離計算
$sqrt = '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))';
//表字首
$prefix = config('database.prefix');
//條件
$where = "'%".$key."%'" ;
//sql語句
$sql = "select * from (select * ,ROUND(6378.138*2*ASIN($sqrt)*1000) AS distance from " .$prefix ."store". " where store_name like ". $where ." or address like ". $where ." order by distance,id) as a ";
Db::query($sql);
/**
* 擷取兩個坐标點的距離
* @param $ulon
* @param $ulat
* @param $slon
* @param $slat
* @return float
*/
private static function getDistance($ulon, $ulat, $slon, $slat)
{
// 地球半徑
$R = 6378137;
// 将角度轉為狐度
$radLat1 = deg2rad($ulat);
$radLat2 = deg2rad($slat);
$radLng1 = deg2rad($ulon);
$radLng2 = deg2rad($slon);
// 結果
$s = acos(cos($radLat1) * cos($radLat2) * cos($radLng1 - $radLng2) + sin($radLat1) * sin($radLat2)) * $R;
// 精度
$s = round($s * 10000) / 10000;
return round($s);
}