使用mysql计算两个经纬度之间的距离
发布时间:2018-05-13作者:laosun阅读(1667)
加入有两个点:
第一点 116.359751000, 39.936868000
第二点 117.291179000, 35.657141000
在mysql数据库中执行如下语句即可:select round(6378.138*2*asin(sqrt(pow(sin((39.936868000*pi()/180-35.657141000*pi()/180)/2),2)+cos(39.936868000*pi()/180)*cos(35.657141000*pi()/180)* pow(sin( (116.359751000*pi()/180-117.291179000*pi()/180)/2),2)))*1000)
当然我们也可以创建一个函数:
delimiter $$
CREATE FUNCTION FUN_JW_DIST(lng1 double(15,9), lat1 double(15, 9), lng2 double(15,9), lat2 double(15,9))
RETURNS int
BEGIN
DECLARE dist int;
SET dist = 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);
RETURN (dist);
END$$
delimiter ;
然后使用:
select FUN_JW_DIST(116.359751000, 39.936868000, 117.291179000, 35.657141000);
删除这个函数
drop function FUN_JW_DIST;
1 +1
版权声明
分享到:
发表评论
请文明留言
发表
共 0 条评论