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-10-31 15:17:26 发布