吳戰克
(1.新疆地礦局 測繪大隊,新疆 烏魯木齊 830017)
基于ArcGIS 10.1的區圖層批處理合并
吳戰克1
(1.新疆地礦局 測繪大隊,新疆 烏魯木齊 830017)

基于ArcGIS 10.1下AO開發接口,實現了存儲在MDB數據格式中同坐標信息、同屬性結構區圖層的批處理合并,將批處理結果與ArcMap手動合并的精度進行了對比檢驗,結果證明該方法切實可行,能降低作業人員的勞動強度,提高工作效率。
ArcGIS 10.1;AO開發;合并圖層;批處理
在地理數據信息化處理的數據收集和初步加工過程中,作業人員幾乎都會遇到重復操作同樣的工作步驟這一問題,這主要是因為項目初期的數據收集工作越來越機械化、智能化,收集的數據也是以大批量同結構的數據居多。而在具體的項目中,更加需要處理大批量同結構的數據,重復性的工作不可避免,這就催生了新的開發需求與方法[1-8]。本文根據地理國情項目的需求,利用ArcGIS 10.1平臺下的AO接口,針對MDB數據庫中同坐標信息、同屬性結構的區圖層進行合并開發實現。
1)開發環境設置。開發的架構是C/S;開發的IDE平臺是Microsoft Visual Studio 2010;開發的地圖平臺是ArcGIS 10.1;開發的語言和組件分別是C#和AO SDK組件。
2)批處理文件集目錄設置。文件結構設置分兩種情況:①三層目錄結構。總體目錄,即一個大的文件夾包括一切預處理數據;二級目錄,即不同地區或者不同位置的文件目錄,它包含對應的MDB數據庫;MDB數據庫,二級目錄中包含對應的MDB數據。二級目錄可以有自己特定的文件夾名稱,但MDB數據和其中的區圖層必須有嚴格的名稱,如**地區鄉鎮界.mdb,MDB中區圖層對應統一命名,如**地區鄉鎮界。②二層目錄結構。一個文件夾內包含需要批處理的MDB數據庫,MDB數據庫名稱和其中圖層名稱同樣需要對應設定。
軟件的開發主要分為3個步驟,其開發技術路線如圖1所示。

圖1 開發技術路線
2.1 讀取批處理文件集
用戶首先需要在界面點擊設置批處理文件集的位置,即選定目標文件夾,開發的接口主要利用了System.IO命名空間下的Folder Browser Dialog和DirectoryInfo類,Folder Browser Dialog設置對應的目標文件夾名稱,DirectoryInfo類根據文件層級分別將多個特定MDB數據庫文件信息存儲到FileInfo數組中。
2.2 篩選MDB
系統在用戶點擊出合并窗口時,初始化默認顯示了MDB中篩選的需合并區圖層類型名稱,這里設置為鄉鎮界。用戶也可以自行更改要篩選區圖層的名稱,開發使用了字符串Indexof的方法判斷MDB中圖層名稱是否包含輸入的短字符串,實現了模糊查詢。在用戶設定好目標文件夾后,Checklistbox列表自動列出了文件夾內所有包含相應區圖層的MDB數據庫,用戶可以全選、多選、反選需要合并的MDB數據庫,系統同時統計顯示合并的個數。
2.3 合并、調用顯示生成圖層
獲取到需要合并的MDB數據庫集合后,分別調用AE的工作空間工廠,打開MDB數據庫,獲取篩選出的特定區文件圖層,集合到IArray數組中,設定定義輸出圖層的Fields表、文件名稱、類型。最后調用Basic Geoprocessor Class類對象的Merge方法接口,生成的要素類對象轉換為要素圖層,由AxMapcontrol地圖控件窗口調用顯示。輸出的類型為Shapefile類型,圖層名稱以當前生成的年月日時分秒開頭。系統效果如圖2(因保密需要,只提供開發生成效果圖)。

圖2 圖層合并批處理小插件實現
筆者使用了兩組數據進行精度測試,一組為4個MDB數據庫,另一組為8個MDB數據庫。分別使用開發的小插件和ArcGIS 10.1本身自帶的合并功能進行縣界合并操作對比,結果證明兩種方法生成的圖層基本一致,達到了合并的基本要求。數據坐標信息、屬性信息、接邊信息、記錄條數基本一致,也側面證明了AO開發和桌面版同用了一個Merge方法,效果如圖3、圖4。

圖4 第二組測試
1)AO開發與AE開發的區別。本次開發是ArcGIS 10.1平臺下AO的開發,AO開發和AE開發的主要接口、類、庫基本一致,但也存在一些區別,如AO開發的范圍更廣、組件更全,但需要安裝桌面版和AO組件,開發成本高。
2)用戶操作的方便性。本次批處理小插件開發,涉及到列表和選擇的問題,用戶可以自由選擇文件夾內需要合并的MDB數據,特別注意的是合并生成的圖層和列表第一位置的MDB中圖層屬性結構對應一致。
3)關于點、線層的合并問題。同樣的Merge接口,實現了區圖層的合并,也證明可以實現點圖層、線圖層的合并。
本次開發主要使用了ArcGIS 10.1下的AO接口,實現了多個MDB數據庫中特定區圖層的合并,并驗證了合并精度。同時研究了點、線層的合并問題,應用于實際生產,能有效提高作業人員的工作效率。
[1] 朱道強,關海濤. Python在ArcGIS中的應用[J].測繪與空間地理信息,2013,36(7): 152-154
[2] 邱中軍,段建剛.基于ArcGIS工具箱構建點云數據批處理模型[J].吉林水利,2012 (8):7-9
[3] 張岳,陶校君.1∶5萬DLG更新中的數據處理與檢查[J].浙江測繪,2007(2):43-44
[4] 卓云,何政偉,趙銀兵.基于COM-GIS的軟件模版快速搭建及應用[J].地理空間信息,2012,10(4):105-106
[5] 陳紅華,李滿春,李飛雪.插件式GIS應用框架的設計與實現[J].地理空間信息,2011,9(2):26-28
[6] 吳建華.基于ArcGIS Engine的GIS軟件開發方法[J].測繪通報,2010 (11):54-57
[7] 肖慶.組件GIS二次開發技術研究[J].軟件導刊,2008 (11): 148-150
[8] 楊宏鵬,王阿川,王妍瑋. GIS二次開發方法與實現[J].信息技術,2008 (8):65-67
P208
B
1672-4623(2015)04-0093-02
10.3969/j.issn.1672-4623.2015.04.033
吳戰克,工程師,主要從事測繪項目生產、測繪技術與質量管理工作。
2014-07-10。
項目來源:新疆維吾爾自治區第一次全國地理國情普查資助項目。