thinkphp5.0+sql搜索附近店铺的sql语句怎么写(店铺经纬度及送货距离)

最近用thinkphp5.0做了一个项目要根据用户的当前位置算出和店铺的距离 并且 踢出不在该配送距离的商家。

百度上也有很多方面,我还是搞了一天时间 心累心累心累心累

产考方法根据经纬度查询附近几公里的门店

不多说了,直接上我的代码吧

         //查询店铺距离
        $distanceSql = ' ROUND(6378.138*2*ASIN(SQRT(POW(SIN(('. $params['latitude'] .'*PI()/180-latitude*PI()/180)/2),2)+COS('. $params['latitude'] .'*PI()/180)*COS(latitude*PI()/180)*POW(SIN(('. $params['longitude'] .'*PI()/180-longitude*PI()/180)/2),2)))*1000)';
        
        // 执行查询
        $list = $this
            ->field(['*',
                "$distanceSql AS distance"
            ])
            ->where('distances','=',0)
            ->whereOR('distances','EXP',">= $distanceSql")
            ->order($sort)
            ->paginate($params['listRows'], false
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值