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

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

龙小默
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 9
Jourdon

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

4年前 评论
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;
    }

计算距离的方法。

4年前 评论

x y 计算勾股吧 :see_no_evil:

4年前 评论
wanghan

geohash,redis有这个功能

4年前 评论

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

4年前 评论
czy2020

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

4年前 评论

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