轉自:http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html
友情提示,您閱讀本篇博文的先決條件如下:
1、本文示例基于Microsoft SQL Server 2008 R2調測。
2、具備 Transact-SQL 程式設計經驗和使用 SQL Server Management Studio 的經驗。
3、熟悉或了解Microsoft SQL Server 2008中的空間資料類型。
4、具備相應(比如OGC規範、KML規範)的GIS專業理論知識。
5、其他相關知識。
geography 和geometry資料類型包括以用于在OGC中所定義的地理資料的已知文本(Well Known
Text,WKT)和已知二進制(Well Known Binary,WKB)格式導入和導出資料的方法,還包括普遍使用的地理标示語言(Geographic
Markup
Language,GML)格式,這使得很容易從支援這些格式的資料源導入地理資料。地理資料很容易從一些政府和商業資料源獲得,并且可以相對容易地從許多現有的GIS應用程式和GPS系統中導出。Microsoft保持與一些第三方GIS供應商和地理資料解決方案供應商的緊密關系,這幫助確定SQL
server 2008和廣泛的行業标準工具間的強大相容能力,以用于導入、導出和操縱空間資料。
通常我們開發一個GIS應用,基于GIS做資料分布呈現、統計彙總、搜尋等等的功能,幾乎都離不開地圖資料的支援,一方面是作為地圖呈現需要,其次是為了友善做空間分析等諸多功能。而對于空間資料的需求,通常不需要自己去建立空間資料,市面上有許多非常成熟的地圖資料可以直接被采購使用,并以此為基礎直接建立基于地圖空間資料的GIS應用。另外網上也提供了比較多的空間資料免費下載下傳資源,可以輕松的擷取到空間資料。本篇将使用 介紹ESRI地圖空間資料(shpfile)導入到SQL
Server 2008的實作。
一、SQL空間資料導入工具(Shape2SQL)
SharpGIS釋出了一個專門用來導入ESRI地圖空間資料(shpfile)的工具,可以非常簡單的實作将shpfile的地圖資料檔案中的空間資料導入到SQL
Server 2008中,可以通過如下位址下載下傳該工具。
SQL空間工具下載下傳位址:

該工具的運作環境需要微軟.NET Framewrok 3.5和。使用該工具通過簡單的可視化界面即可連接配接上SQL Server
2008的資料庫伺服器,目前該工具僅僅隻支援幾種常用的主流空間類型資料,包括:Point 、MultiPoint、(Multi)Polygon 和
(Multi)LineStrings 。詳細可通路:
二、SQL空間資料查詢工具(SqlSpatial-Query-Tool)
SQL Server 2008空間資料查詢工具可以直接連接配接到SQL Server
2008資料庫伺服器,實作空間資料的查詢,可視化界面呈現。詳細可通路:
三、導入Shpfile地圖空間資料
如本文篇前的截圖,使用SQL空間導入工具實作将ESRI的shpfile地圖空間資料導入SQL Server
2008其實非常簡單,在導入的時候注意表名和SRID就可以了,其他的可以不用管。如下圖示範了将重慶市的大區邊界地圖資料導入到SQL Server
2008中。

四、查詢空間資料
實作可以查詢可以在SQL Server Management
Studio中執行對表(CQ_Region)的的全表查詢,于空間結果選項中可以看到如下圖所示的空間呈現效果。
另外還可以使用實作SQL
Server 2008中的空間資料查詢,Spatial Query Tools查詢出的空間輸入結果如下所示。
五、空間計算支援
資料庫裡面有了空間資料,就可以給予資料展開空間計算、統計、分析等給力的功能實作,與GIS用戶端結合來完成各種簡單、負責的空間計算、分析。如下SQL示範了計算上面導入的重慶大界區的地圖的地理面積計算。
select geom.STArea() from CQ_Region WHERE ID=1;
select geom.STArea() from CQ_Region WHERE ID=2
select geom.STArea() from CQ_Region WHERE ID=3;
select geom.STArea() from CQ_Region WHERE ID=4;
select SUM(geom.STArea()) from CQ_Region;
六、相關資料
[1]、KML規範:
[2]、Google KML文檔簡介:
[3]、空間工具(Spatial Tools):
版權說明
本文屬原創文章,歡迎轉載且注明文章出處,其版權歸作者和部落格園共有。為了儲存作者的創作熱情,請在轉載後的明顯位置标記本文出處。
作 者:Beniao
文章出處: 或