当前位置: 移动技术网 > IT编程>数据库>MSSQL > SQLSERVER 根据地图经纬度计算距离差示例

SQLSERVER 根据地图经纬度计算距离差示例

2017年12月12日  | 移动技术网IT编程  | 我要评论

古瀛洲,实名举报朱泽君,走进科学古墓

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的单位为:千米

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网