MySQL根据根据经纬度查询距离
- uu为用户信息表
- #{longitude}为传入的经度,#{latitude}为传入的纬度
IFNULL(
ROUND(
ACOS(
SIN((uu.latitude * PI()) / 180) * SIN((#{latitude} * PI()) / 180)
+
COS((uu.latitude * PI()) / 180) * COS((#{latitude} * PI()) / 180)
*
COS( (uu.longitude * PI()) / 180 - #{longitude} * PI() / 180 )
) * 6371,
6
)
,'暂无数据')
AS distance
-- 例如下面北京天安门到上海东方明珠的距离
-- 天安门 经度39.914 维度116.404
-- 东方明珠 经度31.245 维度121.506
SELECT
IFNULL(
ROUND(
ACOS(
SIN((116.404 * PI()) / 180) * SIN((121.506 * PI()) / 180)
+
COS((116.404 * PI()) / 180) * COS((121.506 * PI()) / 180)
*
COS((39.914 * PI()) / 180 - 31.245 * PI() / 180)
) * 6371,
6
)
,'暂无数据')
AS distance