mysql 求2个坐标之间的距离
CREATE DEFINER=`root`@`%` FUNCTION `f_GetDistance`(lng1 DOUBLE,lat1 DOUBLE,lng2 DOUBLE,lat2 DOUBLE) RETURNS double
BEGIN
-- select tmm_test.f_GetDistance(119.993633,30.281223,120.03270726,30.28528736);
-- select tmm_test.f_GetDistance(119.993633,30.281223,107.735181,29.871416);
DECLARE radLat1 DOUBLE;
DECLARE radLat2 DOUBLE;
DECLARE a DOUBLE;
DECLARE b DOUBLE;
DECLARE s DOUBLE;
set radLat1 = lat1 * PI() / 180.0;
set radLat2 = lat2 * PI() / 180.0;
set a = radLat1 - radLat2;
set b = lng1* PI() / 180.0 - lng2* PI() / 180.0;
set s = 2 * ASIN(SQRT(POW(SIN(a/2),2) + cos(radLat1)*cos(radLat2)*pow(sin(b/2),2)));
set s = s * 6378137.0;
set s = s/1000;
RETURN s;
END
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步