首页 > 数据库技术 > 详细

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

时间:2015-07-24 17:32:11      阅读:332      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!