欢迎来到代码驿站!

MsSql

当前位置:首页 > 数据库 > MsSql

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

时间:2021-01-18 14:46:15|栏目:MsSql|点击:
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的单位为:千米

上一篇:SQL Server数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式

栏    目:MsSql

下一篇:.NET Framework SQL Server 数据提供程序连接池

本文标题:SQLSERVER 根据地图经纬度计算距离差示例

本文地址:http://www.codeinn.net/misctech/47187.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有