使用mysql计算两个经纬度之间的距离

发布时间:2018-05-13作者:laosun阅读(602)

使用mysql计算两个经纬度之间的距离

    加入有两个点:

    第一点    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;


0 +1

版权声明

 数据库  mysql

 请文明留言

0 条评论