我正試圖計算地圖上兩個位置之間的距離。 我已經存儲在我的數據中:經度,緯度,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
任何人可以幫助我與我的代碼,如果你想解決什麼我已經有了,如果你有實現的一種新的方式,我不介意這會很好。
請或註明您的結果是什麼計量單位。
什麼數據庫系統? – AakashM
MSSQL 2008 R2 .. – Waller
您不應該通過附加/ 2將參數劃分爲正弦。另外,您可以在地球半徑中獲得更高的精度,並且可以使用一些_Datum_等。通過GPS系統(WGS-84),通過橢球體(在赤道和極點具有不同的半徑)逼近地球 –