需求:
手机APP中,查询距离我1公里范围内所有的商家。
分析:
关键是如何根据两点之间的坐标求出这两点之间的距离;
解决方案:
利用MySQL存储函数计算距离并做处理;
-- 获取两坐标点的距离(单位:米)
-- lng1 经度1
-- lat1 纬度1
-- lng2 经度2
-- lat2 纬度2
CREATE FUNCTION `get_distance` (
lng1 DOUBLE,
lat1 DOUBLE,
lng2 DOUBLE,
lat2 DOUBLE
) RETURNS DOUBLE
BEGIN
RETURN ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN(
(
lat1 * PI() / 180 - lat2 * PI() / 180
) / 2
),
2
) + COS(lat1 * PI() / 180) * COS(lat2 * PI() / 180) * POW(
SIN(
(
lng1 * PI() / 180 - lng2 * PI() / 180
) / 2
),
2
)
)
) * 1000
);
END;
参数为两点之间的坐标,返回结果为距离,单位为米