2015-09-11 45 views
0

假設我有一張郵政編碼表,Geography列填入Global-WGS84(SRID 4326),我可以準確地比較它們(使用STDistance)與已用北美填充的Geography點 - NAD83 (SRID 4269)?混合和匹配空間參考系統?

回答

1

總之,第

SQL Server需要的所有項目具有相同的SRID的空間功能。這是因爲SRID在背景中提供了用於計算橢球模型上的距離等的其他信息。

也就是說,你可以有第二列計算得到一個通用的SRID並將其用於距離計算。這是簡單的:

Declare @commonSrid geography = geography::STGeomFromWKB(<existing column>.STAsBinary(), 4326); 

在這一過程中,你必須確保所有SRIDs從緯度和經度小數座標,而不是示例格引用爲主。另外,因爲您沒有在它們之間進行適當的轉換,您可能會發現距離並非100%準確 - 但它們會非常接近。

+0

我發現了一些文章,建議兩個數據沒有太大的差異,例如:[WGS84和NAD83之間的差異](http://www.differencebetween.net/technology/difference-between -wgs84和 - NAD83 /)。假設這是事實,並且我想比較Km數量級的距離,我可以比較不同的值,而不用擔心引入重大錯誤嗎?假設我希望在填入'Geography'字段時指定正確的數據源,但是('Geography :: STGeomFromText('POINT()',4269)')。 – craig

+0

@craig我肯定會認爲不會有重大錯誤。橢球差異很小,不會影響任何東西。我不確定主子午線的運動會產生什麼影響(如果有的話),但它又是100米,所以我不會太擔心它(除非你試圖在建築物中放置某人)! –

+0

@craig如果你想保留SRID,那麼是的,用SRID 4269填充你的Geography字段。然而,如果你想使用任何空間函數,你將不得不擁有一個Geography4326字段,其中包含等價物,但是對於WGS84,你不需要不需要爲每個查詢「重新投影」它的開銷,但是很容易吸收插入/更新的開銷。合理? –