zoukankan      html  css  js  c++  java
  • 根据经纬度计算地球上两点之间的距离的Sql Server函数

    单位是千米。

    ALTER FUNCTION dbo.fnGetDistance
    (
    	@LatBegin REAL
    	, @LngBegin REAL
    	, @LatEnd REAL
    	, @LngEnd REAL
    )
    RETURNS FLOAT
    AS
    BEGIN
    	DECLARE @Distance REAL
    	DECLARE @EARTH_RADIUS REAL
    	SET @EARTH_RADIUS = 6378.137
    	
    	DECLARE @RadLatBegin REAL, @RadLatEnd REAL, @RadLatDiff REAL, @RadLngDiff REAL
    	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

    源算法来自“http://www.cnblogs.com/Aricc/archive/2010/05/05/1727711.html”,我只是把它改成了Sql Server的函数。

  • 相关阅读:
    0802作业1替换文本文件内容

    看病
    爬山
    作业1
    超市(未完成)
    图片复制
    替换
    文件
    英文字母和中文汉字在不同字符集编码下的字节数
  • 原文地址:https://www.cnblogs.com/Ricky81317/p/1746139.html
Copyright © 2011-2022 走看看