首页 > 编程知识 正文

mysql距离计算,mysql计算坐标之间的距离

时间:2023-05-06 05:19:44 阅读:211196 作者:3722

CREATE DEFINER=`root`@`%` FUNCTION `getDistance`(`lon1` double,`lat1` double,`lon2` double,`lat2` double) RETURNS varchar(200) CHARSET utf8mb4

BEGIN

declare vLon1,vLat1,vLon2,vLat2,distance,vShortLon,vShortLat double;

declare vRlt double;

set vLon1 = lon1;

set vLat1 = lat1;

set vlon2 = lon2;

set vLat2 = lat2;

set vRlt = 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((lon1 * PI() / 180 - lon2 * PI() / 180) / 2),2))) * 1000

);

return vRlt;

RETURN '';

END;

select getDistance(116.32793,39.94607,121.42575,31.24063);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。