支付宝赞助帐号:service@kuitao8.com 

mysql算出两经纬度的距离

Created2018-11-21   Views 83    Author 懒人程序
drop function getDistance;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `getDistance`(
     lng1 float(10,7)
    ,lat1 float(10,7)
    ,lng2 float(10,7)
    ,lat2 float(10,7)
) RETURNS double
begin
    declare d double;
    declare radius int;
    set radius = 6378140; #假设地球为正球形,直径为6378140米
    set d = (2*ATAN2(SQRT(SIN((lat1-lat2)*PI()/180/2)
        *SIN((lat1-lat2)*PI()/180/2)+
        COS(lat2*PI()/180)*COS(lat1*PI()/180)
        *SIN((lng1-lng2)*PI()/180/2)
        *SIN((lng1-lng2)*PI()/180/2)),
        SQRT(1-SIN((lat1-lat2)*PI()/180/2)
        *SIN((lat1-lat2)*PI()/180/2)
        +COS(lat2*PI()/180)*COS(lat1*PI()/180)
        *SIN((lng1-lng2)*PI()/180/2)
        *SIN((lng1-lng2)*PI()/180/2))))*radius;
    return d;
end
$$
DELIMITER ;

写点东西 就是不想写详细说明 自己体会~~

上一篇: mysql in order by排序
下一篇:没有了
支持键盘 ← →

邮件订阅

订阅我们的精彩内容