我正在试图计算地图上两个位置之间的距离。 我已经存储在我的数据: 经度,纬度,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
然而,我并不相信这些数据,它似乎给出了稍微不准确的结果。
一些样本数据,以备不时之需
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
有人能帮我解决代码的问题吗? 我不介意你们修复我已经有的东西,如果你们有一个新的方法来实现这个,那就太好了。
请说明您的测量结果的单位。