相关疑难解决方法(0)

计算两点之间的距离(纬度,经度)

我试图计算地图上两个位置之间的距离.我存储了我的数据:经度,纬度,X POS,Y POS.

我以前使用过下面的代码片段.

DECLARE @orig_lat DECIMAL
DECLARE @orig_lng DECIMAL
SET @orig_lat=53.381538 set @orig_lng=-1.463526
SELECT *,
    3956 * 2 * ASIN(
          SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2) 
              + COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180)  
              * POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 / 2), 2) )) 
          AS distance
--INTO #includeDistances
FROM #orig dest
Run Code Online (Sandbox Code Playgroud)

不过我不相信这个数据,它似乎给出了稍微不准确的结果.

一些示例数据,以备您需要时使用

Latitude        Longitude     Distance 
53.429108       -2.500953     85.2981833133896
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决我的代码,我不介意你是否想要修复我已经拥有的东西,如果你有一种新方法可以实现这一点,那就太棒了.

请说明您的结果所在的计量单位.

sql t-sql sql-server math sql-server-2008-r2

82
推荐指数
5
解决办法
16万
查看次数

标签 统计

math ×1

sql ×1

sql-server ×1

sql-server-2008-r2 ×1

t-sql ×1