mysql通过经纬度查询400公里范围内的小区

mysql距离计算,单位m,以及排序
lng 经度 lat 纬度
一般地图上显示的坐标顺序为,纬度在前(范围-90~90),经度在后(范围-180~180)
传入参数 纬度 40.0497810000 经度 116.3424590000
/*传入的参数为  纬度 纬度 经度 ASC升序由近至远 DESC 降序 由远到近 */

SELECT
id,
name,
address,
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN(
(
40.0497810000 * PI() / 180 - lat * PI() / 180
) / 2
),
2
) + COS(40.0497810000 * PI() / 180) * COS(lat * PI() / 180) * POW(
SIN(
(
116.3424590000 * PI() / 180 - lng * PI() / 180
) / 2
),
2
)
)
) * 1000
) AS 距离
FROM
oc_district
HAVING
距离 < 400000
ORDER BY
距离 ASC

猜你喜欢

转载自www.cnblogs.com/Soy-technology/p/10979817.html
今日推荐