2011-06-27 126 views
1

我試圖查詢距離另一個位置指定距離內的任何位置。查詢不是問題,但是由geography.STDistance返回的距離是。Ms SQL geography.STDistance返回錯誤的距離

看來STDistance在靠近赤道的地方做了相當準確的計算,但我需要這個在北歐國家的地點工作。挪威,瑞典,芬蘭等...

根據我的計算,在瑞典北部地區的位置,距離是錯誤的因素大約2.38?! 預期結果是1070米並返回距離2537,28850694302米

我的查詢看起來是這樣的:

DECLARE @g geography = geography::STGeomFromText('POINT(65.580254 22.179428)', 4326) 

SELECT name, [pos].STSrid as srdi, [pos].STDistance(@g) as d 
    FROM [GPSCHAT].[dbo].[USERS] 

和「其他位置」的座標是(65,578541 22,202286)(與存儲SRID 4326)

我猜這與離赤道的距離(靠近極地圈)有關,但必須有一種方法可以根據緯度更精確地計算出來,還是我錯了?

回答

1

爲什麼不利用另一個更適合您位置周圍地球曲率的空間參考標識符。 SRID 4326可能沒有像其他本地參考系統那樣精確測量

2

看起來您正在使用'X,Y'創建點。
從文本創建點時,請改用'Y,X'。

查看這個MSDN Article瞭解更多信息。