java根据经纬度查询门店地理位置-完美解决附近门店问题

技术交流QQ群:422167709 想学习的朋友可以进入,各路IT大牛帮忙解决问题

1.首先我们需要创建一个门店表如下:

CREATE TABLE `app_store` (
`store_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '发布id',
`store_name` varchar(255) DEFAULT NULL COMMENT '门店名字',
`longitude` varchar(255) DEFAULT NULL COMMENT '经度',
`latitude` varchar(255) DEFAULT NULL COMMENT '维度',
PRIMARY KEY (`release_id`)
) ENGINE=InnoDB AUTO_INCRE

2.每个门店肯定是后台创建的,创建的时候根据地址查询经纬度,将经纬度存入数据库,根据地址查询经纬度详情:www.fuzongle.com

3.我在网上找了好多方法,个人感觉用sql查询,这个查询速度相对来说最快的了。
需求:根据用户当前位置查询附近的门店距离,附近多少是/m 单位,能快速查询所有的门店。

SELECT 
store_name,
round(
    '6371' * 2 * asin(
        sqrt(
            pow(
                sin(
                    (
                        用户现在的维度 * PI() / 180 - 数据库表的维度字段名字 * PI() / 180
                    ) / 2
                ),
                2
            ) + cos(longitude * PI() / 180) * cos(数据库表的维度名字 * PI() / 180) * pow(
                sin(
                    (
                        用户现在的经度 * PI() / 180 - 数据库表的经度字段名字 * PI() / 180
                    ) / 2
                ),
                2
            )
        )
    ) * 附近多少米之内的门店
) as distance
FROM app_store

感觉好的希望关注一下!

posted @ 2019-08-09 15:47  付宗乐  阅读(5897)  评论(1编辑  收藏  举报