mysql 计算经纬度函数(米)

CREATE DEFINER=`root`@`%` FUNCTION `latlon`(lat1 DOUBLE,lon1 DOUBLE,lat2 DOUBLE,lon2 DOUBLE) RETURNS varchar(200) CHARSET utf8mb4
begin
return 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
    );
end

 

posted @ 2018-10-16 16:29  itvita  阅读(2535)  评论(0编辑  收藏  举报