开发 “附近的店铺 “的功能的数据表应该怎样设计

最近做小程序,有一个功能是列出我附近的店铺。我知道小程序可以获取用户的位置,但是后台应该怎样通过位置查找附近的店铺?店铺表需要有经纬度字段吗?还是有什么别的好办法?谢谢

龙小默
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 9
Jourdon

经纬度必须要有啊,通过计算两个经纬度之间的距离找到某个距离内的店铺就可以

5年前 评论
ShiKi

简单粗暴的做法。把所有店铺的经纬度查询出来。


    public function distance($lat1, $lon1, $lat2,$lon2,$radius = 6378.137)
    {
        $rad = floatval(M_PI / 180.0);
        $lat1 = floatval($lat1) * $rad;
        $lon1 = floatval($lon1) * $rad;
        $lat2 = floatval($lat2) * $rad;
        $lon2 = floatval($lon2) * $rad;
        $theta = $lon2 - $lon1;
        $dist = acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($theta));
        if ($dist < 0 ) {
            $dist += M_PI;
        }
        return $dist = $dist * $radius;
    }

计算距离的方法。

5年前 评论

x y 计算勾股吧 :see_no_evil:

5年前 评论
wanghan

geohash,redis有这个功能

5年前 评论

我们之前是用redis的geohash来做的,当然我们的实时性要求不高,每天会定时匹配新加入的店铺

5年前 评论
czy2020

其实可以用 高德云图api 实现也很方便

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!