本文共 984 字,大约阅读时间需要 3 分钟。
从别的地方烤过来的,自己试了一下,可以计算 出来,不过正确不正确的就不太懂了。
USE [niaoren]
GO/****** Object: UserDefinedFunction [dbo].[fnGetDistance] Script Date: 2017/7/28 星期五 12:17:56 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO --计算地球上两个坐标点(经度,纬度)之间距离sql函数 --作者:lordbaby --整理:www.aspbc.com ALTER FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL) RETURNS FLOAT 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 RETURN @Distance END
原文地址:http://www.open-open.com/code/view/1436452727411
转载地址:http://olvpa.baihongyu.com/