SQL Server 2008空間數(shù)據(jù)應(yīng)用系列九:使用空間工具(Spatial Tools)導(dǎo)入ESRI格式地圖數(shù)據(jù)
友情提示,您閱讀本篇博文的先決條件如下:
- 本文示例基于Microsoft SQL Server 2008 R2調(diào)測(cè)。
- 具備 Transact-SQL 編程經(jīng)驗(yàn)和使用 SQL Server Management Studio 的經(jīng)驗(yàn)。
- 熟悉或了解Microsoft SQL Server 2008中的空間數(shù)據(jù)類型。
- 具備相應(yīng)(比如OGC規(guī)范、KML規(guī)范)的GIS專業(yè)理論知識(shí)。
- 其他相關(guān)知識(shí)。
geography 和geometry數(shù)據(jù)類型包括以用于在OGC中所定義的地理數(shù)據(jù)的已知文本(Well Known Text,WKT)和已知二進(jìn)制(Well Known Binary,WKB)格式導(dǎo)入和導(dǎo)出數(shù)據(jù)的方法,還包括普遍使用的地理標(biāo)示語(yǔ)言(Geographic Markup Language,GML)格式,這使得很容易從支持這些格式的數(shù)據(jù)源導(dǎo)入地理數(shù)據(jù)。地理數(shù)據(jù)很容易從一些政府和商業(yè)數(shù)據(jù)源獲得,并且可以相對(duì)容易地從許多現(xiàn)有的GIS應(yīng)用程序和GPS系統(tǒng)中導(dǎo)出。Microsoft保持與一些第三方GIS供應(yīng)商和地理數(shù)據(jù)解決方案供應(yīng)商的緊密關(guān)系,這幫助確保SQL server 2008和廣泛的行業(yè)標(biāo)準(zhǔn)工具間的強(qiáng)大兼容能力,以用于導(dǎo)入、導(dǎo)出和操縱空間數(shù)據(jù)。
通常我們開發(fā)一個(gè)GIS應(yīng)用,基于GIS做數(shù)據(jù)分布呈現(xiàn)、統(tǒng)計(jì)匯總、搜索等等的功能,幾乎都離不開地圖數(shù)據(jù)的支持,一方面是作為地圖呈現(xiàn)需要,其次是為了方便做空間分析等諸多功能。而對(duì)于空間數(shù)據(jù)的需求,通常不需要自己去建立空間數(shù)據(jù),市面上有許多非常成熟的地圖數(shù)據(jù)可以直接被采購(gòu)使用,并以此為基礎(chǔ)直接建立基于地圖空間數(shù)據(jù)的GIS應(yīng)用。另外網(wǎng)上也提供了比較多的空間數(shù)據(jù)免費(fèi)下載資源,可以輕松的獲取到空間數(shù)據(jù)。本篇將使用SQL空間工具(SqlSpatialTools) 介紹ESRI地圖空間數(shù)據(jù)(shpfile)導(dǎo)入到SQL Server 2008的實(shí)現(xiàn)。
一、SQL空間數(shù)據(jù)導(dǎo)入工具(Shape2SQL)
SharpGIS發(fā)布了一個(gè)專門用來(lái)導(dǎo)入ESRI地圖空間數(shù)據(jù)(shpfile)的工具,可以非常簡(jiǎn)單的實(shí)現(xiàn)將shpfile的地圖數(shù)據(jù)文件中的空間數(shù)據(jù)導(dǎo)入到SQL Server 2008中,可以通過如下地址下載該工具。
SQL空間工具下載地址:http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx
該工具的運(yùn)行環(huán)境需要微軟.NET Framewrok 3.5和Microsoft SQL Server System CLR Types。使用該工具通過簡(jiǎn)單的可視化界面即可連接上SQL Server 2008的數(shù)據(jù)庫(kù)服務(wù)器,目前該工具僅僅只支持幾種常用的主流空間類型數(shù)據(jù),包括:Point 、MultiPoint、(Multi)Polygon 和 (Multi)LineStrings 。詳細(xì)可訪問:http://www.sharpgis.net/page/Shape2SQL.aspx
二、SQL空間數(shù)據(jù)查詢工具(SqlSpatial-Query-Tool)
SQL Server 2008空間數(shù)據(jù)查詢工具可以直接連接到SQL Server 2008數(shù)據(jù)庫(kù)服務(wù)器,實(shí)現(xiàn)空間數(shù)據(jù)的查詢,可視化界面呈現(xiàn)。詳細(xì)可訪問:http://www.sharpgis.net/page/SqlSpatial-Query-Tool.aspx
三、導(dǎo)入Shpfile地圖空間數(shù)據(jù)
如本文篇前的截圖,使用SQL空間導(dǎo)入工具實(shí)現(xiàn)將ESRI的shpfile地圖空間數(shù)據(jù)導(dǎo)入SQL Server 2008其實(shí)非常簡(jiǎn)單,在導(dǎo)入的時(shí)候注意表名和SRID就可以了,其他的可以不用管。如下圖演示了將重慶市的大區(qū)邊界地圖數(shù)據(jù)導(dǎo)入到SQL Server 2008中?! ?/p>
四、查詢空間數(shù)據(jù)
實(shí)現(xiàn)可以查詢可以在SQL Server Management Studio中執(zhí)行對(duì)表(CQ_Region)的的全表查詢,于空間結(jié)果選項(xiàng)中可以看到如下圖所示的空間呈現(xiàn)效果?! ?/p>
另外還可以使用空間查詢工具實(shí)現(xiàn)SQL Server 2008中的空間數(shù)據(jù)查詢,Spatial Query Tools查詢出的空間輸入結(jié)果如下所示?! ?/p>
五、空間計(jì)算支持
數(shù)據(jù)庫(kù)里面有了空間數(shù)據(jù),就可以給予數(shù)據(jù)展開空間計(jì)算、統(tǒng)計(jì)、分析等給力的功能實(shí)現(xiàn),與GIS客戶端結(jié)合來(lái)完成各種簡(jiǎn)單、負(fù)責(zé)的空間計(jì)算、分析。如下SQL演示了計(jì)算上面導(dǎo)入的重慶大界區(qū)的地圖的地理面積計(jì)算。
- 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規(guī)范:http://www.opengeospatial.org/standards/kml/
[2]、Google KML文檔簡(jiǎn)介:http://code.google.com/intl/zh-CN/apis/kml/documentation/
[3]、空間工具(Spatial Tools): http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx
原文鏈接:http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html
【編輯推薦】