吳戰(zhàn)克
(1.新疆地礦局 測繪大隊,新疆 烏魯木齊 830017)
基于ArcGIS 10.1的區(qū)圖層批處理合并
吳戰(zhàn)克1
(1.新疆地礦局 測繪大隊,新疆 烏魯木齊 830017)
基于ArcGIS 10.1下AO開發(fā)接口,實現(xiàn)了存儲在MDB數(shù)據(jù)格式中同坐標信息、同屬性結(jié)構(gòu)區(qū)圖層的批處理合并,將批處理結(jié)果與ArcMap手動合并的精度進行了對比檢驗,結(jié)果證明該方法切實可行,能降低作業(yè)人員的勞動強度,提高工作效率。
ArcGIS 10.1;AO開發(fā);合并圖層;批處理
在地理數(shù)據(jù)信息化處理的數(shù)據(jù)收集和初步加工過程中,作業(yè)人員幾乎都會遇到重復(fù)操作同樣的工作步驟這一問題,這主要是因為項目初期的數(shù)據(jù)收集工作越來越機械化、智能化,收集的數(shù)據(jù)也是以大批量同結(jié)構(gòu)的數(shù)據(jù)居多。而在具體的項目中,更加需要處理大批量同結(jié)構(gòu)的數(shù)據(jù),重復(fù)性的工作不可避免,這就催生了新的開發(fā)需求與方法[1-8]。本文根據(jù)地理國情項目的需求,利用ArcGIS 10.1平臺下的AO接口,針對MDB數(shù)據(jù)庫中同坐標信息、同屬性結(jié)構(gòu)的區(qū)圖層進行合并開發(fā)實現(xiàn)。
1)開發(fā)環(huán)境設(shè)置。開發(fā)的架構(gòu)是C/S;開發(fā)的IDE平臺是Microsoft Visual Studio 2010;開發(fā)的地圖平臺是ArcGIS 10.1;開發(fā)的語言和組件分別是C#和AO SDK組件。
2)批處理文件集目錄設(shè)置。文件結(jié)構(gòu)設(shè)置分兩種情況:①三層目錄結(jié)構(gòu)??傮w目錄,即一個大的文件夾包括一切預(yù)處理數(shù)據(jù);二級目錄,即不同地區(qū)或者不同位置的文件目錄,它包含對應(yīng)的MDB數(shù)據(jù)庫;MDB數(shù)據(jù)庫,二級目錄中包含對應(yīng)的MDB數(shù)據(jù)。二級目錄可以有自己特定的文件夾名稱,但MDB數(shù)據(jù)和其中的區(qū)圖層必須有嚴格的名稱,如**地區(qū)鄉(xiāng)鎮(zhèn)界.mdb,MDB中區(qū)圖層對應(yīng)統(tǒng)一命名,如**地區(qū)鄉(xiāng)鎮(zhèn)界。②二層目錄結(jié)構(gòu)。一個文件夾內(nèi)包含需要批處理的MDB數(shù)據(jù)庫,MDB數(shù)據(jù)庫名稱和其中圖層名稱同樣需要對應(yīng)設(shè)定。
軟件的開發(fā)主要分為3個步驟,其開發(fā)技術(shù)路線如圖1所示。
圖1 開發(fā)技術(shù)路線
2.1 讀取批處理文件集
用戶首先需要在界面點擊設(shè)置批處理文件集的位置,即選定目標文件夾,開發(fā)的接口主要利用了System.IO命名空間下的Folder Browser Dialog和DirectoryInfo類,F(xiàn)older Browser Dialog設(shè)置對應(yīng)的目標文件夾名稱,DirectoryInfo類根據(jù)文件層級分別將多個特定MDB數(shù)據(jù)庫文件信息存儲到FileInfo數(shù)組中。
2.2 篩選MDB
系統(tǒng)在用戶點擊出合并窗口時,初始化默認顯示了MDB中篩選的需合并區(qū)圖層類型名稱,這里設(shè)置為鄉(xiāng)鎮(zhèn)界。用戶也可以自行更改要篩選區(qū)圖層的名稱,開發(fā)使用了字符串Indexof的方法判斷MDB中圖層名稱是否包含輸入的短字符串,實現(xiàn)了模糊查詢。在用戶設(shè)定好目標文件夾后,Checklistbox列表自動列出了文件夾內(nèi)所有包含相應(yīng)區(qū)圖層的MDB數(shù)據(jù)庫,用戶可以全選、多選、反選需要合并的MDB數(shù)據(jù)庫,系統(tǒng)同時統(tǒng)計顯示合并的個數(shù)。
2.3 合并、調(diào)用顯示生成圖層
獲取到需要合并的MDB數(shù)據(jù)庫集合后,分別調(diào)用AE的工作空間工廠,打開MDB數(shù)據(jù)庫,獲取篩選出的特定區(qū)文件圖層,集合到IArray數(shù)組中,設(shè)定定義輸出圖層的Fields表、文件名稱、類型。最后調(diào)用Basic Geoprocessor Class類對象的Merge方法接口,生成的要素類對象轉(zhuǎn)換為要素圖層,由AxMapcontrol地圖控件窗口調(diào)用顯示。輸出的類型為Shapefile類型,圖層名稱以當前生成的年月日時分秒開頭。系統(tǒng)效果如圖2(因保密需要,只提供開發(fā)生成效果圖)。
圖2 圖層合并批處理小插件實現(xiàn)
筆者使用了兩組數(shù)據(jù)進行精度測試,一組為4個MDB數(shù)據(jù)庫,另一組為8個MDB數(shù)據(jù)庫。分別使用開發(fā)的小插件和ArcGIS 10.1本身自帶的合并功能進行縣界合并操作對比,結(jié)果證明兩種方法生成的圖層基本一致,達到了合并的基本要求。數(shù)據(jù)坐標信息、屬性信息、接邊信息、記錄條數(shù)基本一致,也側(cè)面證明了AO開發(fā)和桌面版同用了一個Merge方法,效果如圖3、圖4。
圖4 第二組測試
1)AO開發(fā)與AE開發(fā)的區(qū)別。本次開發(fā)是ArcGIS 10.1平臺下AO的開發(fā),AO開發(fā)和AE開發(fā)的主要接口、類、庫基本一致,但也存在一些區(qū)別,如AO開發(fā)的范圍更廣、組件更全,但需要安裝桌面版和AO組件,開發(fā)成本高。
2)用戶操作的方便性。本次批處理小插件開發(fā),涉及到列表和選擇的問題,用戶可以自由選擇文件夾內(nèi)需要合并的MDB數(shù)據(jù),特別注意的是合并生成的圖層和列表第一位置的MDB中圖層屬性結(jié)構(gòu)對應(yīng)一致。
3)關(guān)于點、線層的合并問題。同樣的Merge接口,實現(xiàn)了區(qū)圖層的合并,也證明可以實現(xiàn)點圖層、線圖層的合并。
本次開發(fā)主要使用了ArcGIS 10.1下的AO接口,實現(xiàn)了多個MDB數(shù)據(jù)庫中特定區(qū)圖層的合并,并驗證了合并精度。同時研究了點、線層的合并問題,應(yīng)用于實際生產(chǎn),能有效提高作業(yè)人員的工作效率。
[1] 朱道強,關(guān)海濤. Python在ArcGIS中的應(yīng)用[J].測繪與空間地理信息,2013,36(7): 152-154
[2] 邱中軍,段建剛.基于ArcGIS工具箱構(gòu)建點云數(shù)據(jù)批處理模型[J].吉林水利,2012 (8):7-9
[3] 張岳,陶校君.1∶5萬DLG更新中的數(shù)據(jù)處理與檢查[J].浙江測繪,2007(2):43-44
[4] 卓云,何政偉,趙銀兵.基于COM-GIS的軟件模版快速搭建及應(yīng)用[J].地理空間信息,2012,10(4):105-106
[5] 陳紅華,李滿春,李飛雪.插件式GIS應(yīng)用框架的設(shè)計與實現(xiàn)[J].地理空間信息,2011,9(2):26-28
[6] 吳建華.基于ArcGIS Engine的GIS軟件開發(fā)方法[J].測繪通報,2010 (11):54-57
[7] 肖慶.組件GIS二次開發(fā)技術(shù)研究[J].軟件導(dǎo)刊,2008 (11): 148-150
[8] 楊宏鵬,王阿川,王妍瑋. GIS二次開發(fā)方法與實現(xiàn)[J].信息技術(shù),2008 (8):65-67
P208
B
1672-4623(2015)04-0093-02
10.3969/j.issn.1672-4623.2015.04.033
吳戰(zhàn)克,工程師,主要從事測繪項目生產(chǎn)、測繪技術(shù)與質(zhì)量管理工作。
2014-07-10。
項目來源:新疆維吾爾自治區(qū)第一次全國地理國情普查資助項目。