我計算兩個緯度長值之間米的距離很大的區別 - 40.1844441 -77.2252771和
40.319166 -76.7880552SQL服務器地理STDistance函數返回比其他測試結果
我測試了這兩者之間的距離點在兩個以下網站 - http://www.nhc.noaa.gov/gccalc.shtml和 http://www.movable-type.co.uk/scripts/latlong.html
這兩個網站返回大約40014米。
因此,我使用SQL Server的GEOGRAPHY數據類型來計算這兩個點之間的距離,並返回48927米。這對我來說是一個巨大的差異。
下面是我的代碼和任何建議表示讚賞。
declare @latlong1 GEOGRAPHY
declare @latlong2 GEOGRAPHY
DECLARE @distance float
set @latlong1 = GEOGRAPHY::STGeomFromText('POINT(40.1844441 -77.2252771)', 4326)
set @latlong2 = GEOGRAPHY::STGeomFromText('POINT(40.319166 -76.7880552)', 4326)
SET @distance = @latlong1.STDistance(@latlong2)
SELECT @distance -- this returns 48927 meters
約翰·C:我可以證實你的UDFGE O的結果對12位有效數字是正確的,基於地球半徑爲6371008.8米的球體。 –
@JohnMachin感謝您的額外努力和確認 –
@JohnCappelletti - 謝謝。 我也確認使用「Cosines的球形法」,這正是你計算出來的,它返回40014.8833526855米。是。我用地球的半徑爲6371008.8。 – Shwe