ALTER FUNCTION [dbo].[getDistance]
( @lng1 AS DECIMAL(12,8) ,
@lat1 AS DECIMAL(12,8) ,
@lng2 AS DECIMAL(12,8) ,
@lat2 AS DECIMAL(12,8)
)
RETURNS float
AS
BEGIN
DECLARE @radLat1 float,@s float,@radLat2 float,@a float,@b float,@EARTH_RADIUS float
set @EARTH_RADIUS = 6378137
set @radLat1 = @lat1 * (PI() / 180.0)
set @radLat2 = @lat2 * (PI() / 180.0)
set @a = @radLat1 - @radLat2
set @b = (@lng1 - @lng2) * (PI() / 180.0)
set @s = 2 * asin(sqrt(power(sin(@a / 2), 2) + cos(@radLat1) * cos(@radLat2) * power(sin(@b / 2), 2)));
set @s = @s * @EARTH_RADIUS;
set @s = round(@s ,0);
RETURN @s
END
SQLServer计算两个经纬度坐标之间的距离
最新推荐文章于 2022-07-10 18:42:29 发布
本文介绍了一个SQL函数,用于计算地球上两点之间的距离。该函数接受经纬度作为参数,并使用地球平均半径进行计算。
431

被折叠的 条评论
为什么被折叠?



