根据经纬度求任意两点距离是上课的时候老师布置的作业
写一下自己在看了网上的代码后改的代码叭
计算方法是看的百度
运行的测试结果和在网上看到的其他代码相同,所以程序应该是没有问题的
CREATE FUNCTION dbo.getEarthDistance
--Lat为纬度,Lng为经度,AB为任意两点
(@LatA REAL, @LngA REAL, @LatB REAL, @LngB REAL)
RETURNS FLOAT
AS
BEGIN
--所求距离(千米)
DECLARE @Distance REAL
--地球半径
DECLARE @EARTH_RADIUS REAL
SET @EARTH_RADIUS = 6378.137
DECLARE @RadLatA REAL,@RadLatB REAL,@RadLngAB REAL,@RadAB REAL
SET @RadLatA = @LatA *PI()/180.0
SET @RadLatB = @LatB *PI()/180.0
SET @RadLngAB = ABS(@LngA - @LngB)*PI()/180.0
SET @RadAB = ACOS(SIN(@RadLatA)*SIN(@RadLatB)+COS(@RadLatA)*COS(@RadLatB)*COS(@RadLngAB))
SET @Distance = @EARTH_RADIUS*@RadAB
RETURN @Distance
END
引用的话就是在sql里新建一个查询
SELECT dbo.getEarthDistance(116.32793,39.94607,121.42575,31.24063) AS 两点的距离
第一次的记录写完啦,嘻嘻嘻