需求:
手機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;
參數為兩點之間的坐标,傳回結果為距離,機關為米