国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ArcGIS的VBA多邊形空洞去除方法研究

2013-08-29 17:00張金蘭歐陽(yáng)婷萍
大眾科技 2013年3期
關(guān)鍵詞:外環(huán)內(nèi)環(huán)批量

張金蘭 歐陽(yáng)婷萍

(1.廣東工貿(mào)職業(yè)技術(shù)學(xué)院,廣東 廣州 510510;2.中國(guó)科學(xué)院廣州地球化學(xué)研究所 邊緣海地質(zhì)重點(diǎn)實(shí)驗(yàn)室,廣東 廣州 510640)

在GIS中,矢量數(shù)據(jù)模型是地理數(shù)據(jù)的最主要表現(xiàn)形式。在矢量數(shù)據(jù)模型中,將二維地理實(shí)體抽象為點(diǎn)、線、面(多邊形)三類要素對(duì)象[1]。這些幾何形體對(duì)象可以精確描述具有離散特征的要素在地球上的具體位置和形狀,并能夠表達(dá)出地理實(shí)體之間的空間關(guān)系。正是因?yàn)榭臻g關(guān)系,才使得GIS可以對(duì)這些要素進(jìn)行不同的空間分析和運(yùn)算,得出用戶需要的結(jié)果,這也是GIS區(qū)別于一般地理信息系統(tǒng)的本質(zhì)——空間查詢和分析功能??臻g關(guān)系主要包括方向關(guān)系、拓?fù)潢P(guān)系和度量關(guān)系。空間拓?fù)潢P(guān)系是空間實(shí)體間的一個(gè)重要而又基本的關(guān)系,是GIS空間推理、查詢和分析的基礎(chǔ)[2-7]。多邊形的拓?fù)潢P(guān)系可歸納為“相離”、“相接”、“相交”、“覆蓋”、“包含”、“覆蓋于”、“包含于”、“相等”關(guān)系[6,7]。但對(duì)于這些關(guān)系的描述和應(yīng)用都是在簡(jiǎn)單無(wú)洞多邊形的基礎(chǔ)上的。如果多邊形存在空洞(內(nèi)環(huán)),便會(huì)對(duì)拓?fù)潢P(guān)系造成困擾,干擾GIS的應(yīng)用。因此經(jīng)常需要對(duì)多邊形的空洞(內(nèi)環(huán))進(jìn)行刪除。ESRI公司的ArcGIS系列軟件是一個(gè)全面的、完善的、功能強(qiáng)大的GIS軟件平臺(tái)[8]。ArcGIS雖然能夠?qū)斩炊噙呅芜M(jìn)行去除,但只能對(duì)空洞(內(nèi)環(huán))一個(gè)一個(gè)的進(jìn)行刪除,不能達(dá)到批量處理的效果。本文針對(duì)上述問(wèn)題,利用ArcGIS中內(nèi)置VBA對(duì)多邊形空洞進(jìn)行批量的刪除處理,生成無(wú)洞多邊形。經(jīng)試驗(yàn)表明,該方法簡(jiǎn)單,效果理想,為GIS的數(shù)據(jù)處理和應(yīng)用分析提高效率,更適用于廣大GIS用戶。

1 VBA介紹

眾所周知,Arcmap中包含了內(nèi)置的VBA,VBA全稱Visual Basic For Application,是 Visual Basic的子集,作為ArcGIS的二次開(kāi)發(fā)工具。VBA提供了一種集成的編程環(huán)境——VB編輯器(VBE)。在該環(huán)境中,可以編寫并調(diào)試在Arcmap中使用的VB宏及ESRI的對(duì)象庫(kù),宏的命令可以將VB的一些或部分功能與Arcmap的功能集成起來(lái)。創(chuàng)建宏的過(guò)程就是編寫VB的子程序,改程序的名字就是宏的名字[9]。VBA的開(kāi)發(fā)使用ActiveX技術(shù),這種技術(shù)能使用戶能夠從ArcGIS的內(nèi)部或外部以編程方式來(lái)操作ArcGIS,同時(shí)具有一個(gè)功能強(qiáng)大的對(duì)象庫(kù)——ArcObjects。ArcGIS與VBA的結(jié)合具有如下特點(diǎn):

(1)VBA可以通過(guò)應(yīng)用程序滿足用戶的需要,增強(qiáng)與用戶的交互,集成ArcGIS的功能,使ArcGIS任務(wù)自動(dòng)化,增強(qiáng)ArcGIS的功能[10,11]。

(2)VBA是VB的子集,二者結(jié)構(gòu)和語(yǔ)法完全一致,易于掌握和快速應(yīng)用,并且內(nèi)嵌于ArcGIS軟件中,無(wú)需安裝[11,12]。

2 基于ArcGIS的VBA多邊形空洞去除的實(shí)現(xiàn)

2.1 算法依據(jù)

在ArcObjects中, Polygon(多邊形)是一個(gè)有序Ring(環(huán))對(duì)象的集合,環(huán)有內(nèi)環(huán)和外環(huán)之分,內(nèi)環(huán)及多邊形的空洞。內(nèi)環(huán)和外環(huán)的存儲(chǔ)方向是有區(qū)別的,內(nèi)環(huán)存儲(chǔ)方向是逆時(shí)針?lè)较?,而外環(huán)是順時(shí)針?lè)较颍@也決定了環(huán)的面積特性有所區(qū)別。內(nèi)環(huán)的面積為負(fù)值,外環(huán)的面積為正值[13-15]。這是判斷內(nèi)環(huán)和外環(huán)的關(guān)鍵,也是去除多邊形空洞的算法依據(jù)。

2.2 算法實(shí)現(xiàn)

(1)在ArcGIS的“ArcMap—T0ols—Macros-Create”下,輸入文件名,編好程序后,若想保存文件,點(diǎn)VBE中的“File—save Project”圖標(biāo),輸入文件名,則文件以后綴名為.mxd的格式保存.當(dāng)下次需要運(yùn)行時(shí),打開(kāi)“ArcMap—tools—Macms—VBE—Run”,運(yùn)行宏的結(jié)果將在桌面顯示。

(2)在本次開(kāi)發(fā)中主要用到Polygon類和Ring類,首先通過(guò)ITopologicalOperator2接口的SimplifyPreserveFromTo函數(shù)確保多邊形的內(nèi)環(huán)和外環(huán)的方向是正確的;接著通過(guò)IArea接口的Area屬性值是否小于0,來(lái)篩選內(nèi)環(huán)進(jìn)行刪除,只保留多邊形的外環(huán),完成多邊形空洞的去除。部分代碼如下:

(3)上述代碼是去除一個(gè)多邊形的空洞,要對(duì)整個(gè)圖層的多邊形空洞的批量去除,只需要遍歷完整個(gè)圖層的多邊形要素即可。實(shí)驗(yàn)結(jié)果如圖1所示:

圖1 處理結(jié)果

3 結(jié)論與建議

本文利用ArcGIS中內(nèi)置VBA進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)對(duì)多邊形空洞的批量刪除處理,算法簡(jiǎn)單可行,實(shí)現(xiàn)效率高。對(duì)于GIS用戶在進(jìn)行空間分析,特別是根據(jù)多邊形拓?fù)潢P(guān)系進(jìn)行空間分析的時(shí)候具有重要的意義。

[1]鄔倫,劉瑜,等.地理信息系統(tǒng)——原理、方法和應(yīng)用[M],北京:科學(xué)出版社,2005.

[2]何建華,劉耀林.GIS中拓?fù)浜头较蜿P(guān)系推理模型[J]. 測(cè)繪學(xué)報(bào),2004,33(2):156-162.

[3]杜世宏,秦其明,王橋.GIS中由多種方向關(guān)系推理拓?fù)潢P(guān)系的方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2005, 17(9):1917-1927.

[4]鄧敏,李志林,李永禮.GIS線目標(biāo)間拓?fù)潢P(guān)系描述的層次方法[J].遙感學(xué)報(bào),2007,11(3):311-317.

[5]劉耀開(kāi),劉傳立.GIS空間拓?fù)潢P(guān)系形式化描述模型分析[J].江西理工大學(xué)學(xué)報(bào),2008,29(5):41-44.

[6]鄧敏,劉文寶,馮學(xué)智.GIS面目標(biāo)間拓?fù)潢P(guān)系的形式化模型[J].測(cè)繪學(xué)報(bào),2005,34(1):85-90.

[7]鄧敏,劉文寶,黃杏元,等.空間目標(biāo)的拓?fù)潢P(guān)系及其GIS應(yīng)用分析[J].中國(guó)圖像圖形學(xué)報(bào),2006,11(12):1743-1749.

[8]魏士春,張紅日,蘇奮振,等.基于ArcGIS的面狀要素中軸線提取方法研究[J].地理空間信息,2007,5(2):45-47.

[9]黨安榮,賈海峰,易善楨,等.ArcGIS 8 Desktop地理信息系統(tǒng)應(yīng)用指南[M].北京:清華大學(xué)出版社,2003.

[10]黃紅華,譚云婷,吳鵬.基于ArcGIS二次開(kāi)發(fā)的圖斑綜合研究[J].科技資訊,2009,31:1-1.

[11]劉少軍,何政偉,黃潤(rùn)秋,等.利用ArcGIS中VBA開(kāi)發(fā)滑坡階段綜合預(yù)報(bào)功能[J].桂林工學(xué)院學(xué)報(bào),2004,24(3):315-318.

[12]譚金華,左石磊,洪勝.基于ArcGIS VBA批量生成野外調(diào)查用途程序設(shè)計(jì)[J].浙江測(cè)繪,2011,1:71-73.

[13]蘭小機(jī),劉德兒.基于ArcObjects與C#.NET的GIS應(yīng)用開(kāi)發(fā)[M].北京:冶金工業(yè)出版社,2011.

[14]韓鵬,徐占華,褚海峰,等.地理信息系統(tǒng)開(kāi)發(fā)[M].武漢:武漢大學(xué)出版社,2005.

[15]ESRI. Engine help for .NET(VS2008)[DB/OL]. ms-help://ESRI.EDNv9.3/NET_Engine/e7a44d7b-bb14-43e0-b71b-38b817b953 af.htm.

猜你喜歡
外環(huán)內(nèi)環(huán)批量
潘王路南延南外環(huán)道路綠化工程設(shè)計(jì)
批量提交在配置分發(fā)中的應(yīng)用
深圳外環(huán)高速公路通車
基于弓狀下緣的腹腔鏡內(nèi)環(huán)網(wǎng)塞修補(bǔ)術(shù)治療成人腹股溝斜疝的效果觀察
鞏膜外環(huán)扎術(shù)治療復(fù)發(fā)性視網(wǎng)膜脫離的臨床觀察
單孔腹腔鏡治療兒童巨大腹股溝斜疝
經(jīng)臍兩孔法腹腔鏡腹股溝疝內(nèi)環(huán)高位結(jié)扎加臍外側(cè)襞加強(qiáng)術(shù)治療小兒腹股溝斜疝*(附108例報(bào)告)
經(jīng)臍微型腹腔鏡內(nèi)環(huán)高位結(jié)扎術(shù)聯(lián)合包皮環(huán)套術(shù)的臨床應(yīng)用
某型機(jī)低壓渦輪外環(huán)釬焊技術(shù)
在數(shù)控車床上批量鉆鉸孔類工件的實(shí)踐