您的位置:首页 > 数据库

通过经纬度计算距离,可以用来得到周边500米内的商家。mybatis中的Sql语句实现

2017-12-12 10:48 591 查看
<!--
下面的#{lat}、#{lng}分别代表经纬度参数,将自身经纬度和数据库中商家经纬度比较
6378.138为地球半径
距离单位是 m
-->
SELECT id,address,name, SETPOSX, SETPOSY,
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN(
(
#{lat} * PI() / 180 - SETPOSY * PI() / 180
) / 2
),
2
) + COS(#{lat} * PI() / 180) * COS(SETPOSY * PI() / 180) * POW(
SIN(
(
#{lng} * PI() / 180 - SETPOSX * PI() / 180
) / 2
),
2
)
)
) * 1000
) AS distance
FROM
store
<!--WHERE-->
<!--`SETSTATUS` = 1-->
<!--<if test="lastdate != null">-->
<!--HAVING-->
<!--distance > #{lastdate}-->
<!--</if>-->
ORDER BY distance ASC LIMIT 30
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql 周边商家