php根据经纬度查询最近商家

2018-11-29  本文已影响0人  昱弟丶
//$lon1 用户当前经度  $lat1用户当前纬度  $lon2数据库经度的字段名  $lat2数据库纬度的字段名
public function distance_sql($lon1='116.434164',$lat1='39.909843',$lon2='lon',$lat2='lng')
    {
        $sql = "round(6378.138*2*asin(sqrt(pow(sin( ({$lat1}*pi()/180-{$lat2}*pi()/180)/2),2)+cos({$lat1}*pi()/180)*cos({$lat2}*pi()/180)* pow(sin( ({$lon1}*pi()/180-{$lon2}*pi()/180)/2),2)))*1000) ";
        return $sql;
    }
    public function address()
    {
        $sql = $this->distance_sql();
        $row = Db::query("select * ,".$sql."as distance  from ws_shop order by distance");
        return json($row);
    }
上一篇 下一篇

猜你喜欢

热点阅读