码迷,mamicode.com
首页 > 数据库 > 详细

mysql函数计算地表两点间距离

时间:2015-07-24 17:32:12      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

DELIMITER $$

CREATE FUNCTION `test`.`getDistance`(LatBegin FLOAT(10,4), LngBegin FLOAT(10,4), LatEnd FLOAT(10,4), LngEnd FLOAT(10,4))RETURNS FLOAT(10,4)
    BEGIN
	DECLARE Distance FLOAT(10,4) DEFAULT 0.0000;
	DECLARE EARTH_RADIUS FLOAT(10,4) DEFAULT 0.0000;
	DECLARE RadLatBegin FLOAT(10,4);
	DECLARE RadLatEnd FLOAT(10,4);
	DECLARE RadLatDiff FLOAT(10,4);
	DECLARE RadLngDiff FLOAT(10,4);
	SET EARTH_RADIUS = 6378.137;
	SET RadLatBegin = LatBegin *PI()/180.0;
	SET RadLatEnd = LatEnd *PI()/180.0;
	SET RadLatDiff = RadLatBegin - RadLatEnd;
	SET RadLngDiff = LngBegin *PI()/180.0 - LngEnd *PI()/180.0;
	SET Distance = 2 *ASIN(SQRT(POWER(SIN(RadLatDiff/2), 2)+COS(RadLatBegin)*COS(RadLatEnd)*POWER(SIN(RadLngDiff/2), 2)));
	SET Distance = Distance * EARTH_RADIUS;
	-- SET @Distance = Round(@Distance * 10000) / 10000  
	RETURN Distance;

    END$$

DELIMITER ;

  

mysql函数计算地表两点间距离

标签:

原文地址:http://www.cnblogs.com/jenqz/p/4673906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!