1. 程式人生 > >如何使用sqlserver 2012 空間查詢(geometry及 geography)

如何使用sqlserver 2012 空間查詢(geometry及 geography)

spec 執行 net ica spa sel 開放 pointf pan

---恢復內容開始---

介紹

SQL Server 2008為大地測量空間數據提供了geography數據類型為平面空間數據提供了geometry數據類型。這兩個都是Microsoft .NET Framework通用語言運行時(CLR)類型,並且可以用來存儲不同種類的地理元素,例如點、線和多邊形。這兩個數據類型都提供了你可以用來執行空間操作的屬性和方法,例如計算位置間的距離和找出兩者間交叉的地理特性(例如一條河流經一個城鎮。)

geography 數據類型

geography數據類型為空間數據提供了一個由經度和緯度聯合定義的存儲結構。使用這種數據的典型用法包括定義道路、建築、或者地理特性如可以覆蓋到一個光柵圖上的向量數據,它考慮了地球的彎曲性,或者計算真實的圓弧距離和空中傳播軌道,而這些在一個平面模型中所存在的固有失真引起的錯誤程度是不可接受的。

geometry數據類型

geometry數據類型為空間數據提供了一個存儲結構,它是由任意平面上的坐標定義的。這種數據通常是用在區域匹配系統中的,例如由美國政府制定的州平面系統,或者是不需要考慮地球彎曲性的地圖和內層布置圖。

geometry 數據類型提供了與開放地理空間聯盟(OGC)Simple Features Specification for SQL標準結合的屬性和方法,使得你可以對geometry數據執行操作以產生行業標準的行為。

使用(sql語句)

geography 數據類型使用

將數據(wkt)直接轉換geography 字段類型

DECLARE @bigGeo geography = geography::STPointFromText(‘POINT (120.280994531787670 36.193256972700624)‘,4326);

將數據(wkt)直接轉換geometry字段類型

DECLARE @bigGeo geometry= geometry::STPointFromText(‘POINT (120.280994531787670 36.193256972700624)‘,4326);

進行空間查詢

table1:表一

table2:表二

a.Geom 表一中geometry類型字段

b.location 表二中geometry類型字段

select * from table1 a,table2 b where a.Geom.STContains(b.location)=1

geography 類型相同

---恢復內容結束---

如何使用sqlserver 2012 空間查詢(geometry及 geography)