技术交流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
感觉好的希望关注一下! |