微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLSERVER 根据经纬度计算距离差


sql SERVER 根据地图经纬度计算距离的公式

go

--创建经纬度距离计算函数

 CREATEFUNCTION [dbo].[fnGetdistance] 

 --LatBegin 开始经度

 --LngBegin 开始维度

(@LatBegin REAL,@LngBegin REAL,@LatEnd REAL,@LngEnd REAL) 

       RETURNSFLOAT

       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

 

@distance的单位为:千米

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐