Mysql 如何根据经纬度计算距离
mysql
表名 bars
,字段 lat
为纬度,lng
为经度
传入参数 纬度 40.0497810000
,经度 116.3424590000
,查询表内距离自己最近的酒吧
SELECT
*,
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 distance
FROM
bars
WHERE
lat!='0' or lng!='0'
ORDER BY
distance ASC
LIMIT 0,100