Mysql 根據經緯度計算距離函數

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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章