mysql 计算经纬度函数

DELIMITER $$
DROP FUNCTION IF EXISTS `get_distance`$$
CREATE FUNCTION `get_distance`(
lat1 DECIMAL(9,6),
lng1 DECIMAL(9,6),
lat2 DECIMAL(9,6),
lng2 DECIMAL(9,6) ) RETURNS decimal(13,2)
BEGIN
if lat1=0 || lng1=0
THEN
RETURN (10000000);
ELSE
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((lng1*pi()/180-lng2*pi()/180)/2),2)))*1000));
end IF;
end
DELIMITER ;

posted @ 2016-04-07 10:09  秋风落叶.  阅读(423)  评论(0编辑  收藏  举报