程 璐
(西南科技大學(xué)環(huán)境與資源學(xué)院,四川綿陽621010)
GIS的數(shù)據(jù)源,是指建立的地理數(shù)據(jù)庫(kù)所需的各種數(shù)據(jù)的來源[1]。數(shù)據(jù)源是GIS的重要組成部分[2],數(shù)據(jù)源的完整性也影響著GIS系統(tǒng)的應(yīng)用,完備的數(shù)據(jù)源是進(jìn)行GIS應(yīng)用和分析的基礎(chǔ)[3]。然而,由于人為的誤操作往往會(huì)導(dǎo)致GIS工作空間圖層數(shù)據(jù)的無效,這會(huì)給GIS系統(tǒng)的應(yīng)用帶來不便。在Arc GISDesktop中也有數(shù)據(jù)源的單個(gè)或多個(gè)設(shè)置,比如設(shè)置多個(gè)數(shù)據(jù)源時(shí),用戶只需在ArcCatalog(地理數(shù)據(jù)的資源管理器,用戶通過ArcCatalog來組織、管理和創(chuàng)建GIS數(shù)據(jù))中基于地圖文檔批量設(shè)置數(shù)據(jù)源。但是此種方法沒有考慮到數(shù)據(jù)源的多元存儲(chǔ)方式。在GIS工作空間中,如果數(shù)據(jù)不大而且數(shù)據(jù)來自同一個(gè)文件或者數(shù)據(jù)庫(kù),則很方便處理。但是,隨著GIS技術(shù)的發(fā)展,其在很多領(lǐng)域都到了廣泛的運(yùn)用,而海量的數(shù)據(jù)則是其“血液”,而如此龐大的數(shù)據(jù)可能來自不同的數(shù)據(jù)文件或數(shù)據(jù)庫(kù)存儲(chǔ)。如果像Arc GIS Desktop,在批量處理時(shí),只是逐一地輸入數(shù)據(jù)源存儲(chǔ)路徑,則效率非常低。
因此,系統(tǒng)以Visual C#2010 C#為開發(fā)環(huán)境、采用ArcEngine集成技術(shù),開發(fā)出了區(qū)別于Arc GIS Desktop的數(shù)據(jù)源設(shè)置的數(shù)據(jù)源更新系統(tǒng),能夠批量地、高效地更新GIS工作空間中無效的圖層數(shù)據(jù)。
圖1 第一次更新結(jié)果顯示
圖2 更新結(jié)果顯示
本系統(tǒng)在數(shù)據(jù)源的設(shè)置上,主要選擇了 shapefile、Raster文件格式數(shù)據(jù),MDB數(shù)據(jù)庫(kù)、GDB數(shù)據(jù)庫(kù)和Arc SDE數(shù)據(jù)庫(kù)。是因?yàn)檫@些數(shù)據(jù)文件及數(shù)據(jù)庫(kù)是GIS中比較常用的,且各自都有自己的優(yōu)勢(shì)。
Shapefile是一種基于文件方式存儲(chǔ)GIS數(shù)據(jù)的文件格式,是GIS中比較通用的一種數(shù)據(jù)格式。Raster數(shù)據(jù)格式,如遙感影像數(shù)據(jù)中的DEM數(shù)據(jù)也是GIS中的一個(gè)極其重要的信息源。Geodatabase是一種基于RDBMS存儲(chǔ)的數(shù)據(jù)格式,其中有兩大類:一是PersonalGeodatabse用來存儲(chǔ)小數(shù)據(jù)量數(shù)據(jù);另一種是FileGeodatabse也是用來存儲(chǔ)小數(shù)據(jù)量數(shù)據(jù),不過存儲(chǔ)于文件中,文件大小沒有限制。ArcSDEGeodatabse存儲(chǔ)大型數(shù)據(jù),存儲(chǔ)在大型數(shù)據(jù)庫(kù)中Oracle,SqlServer,DB2等,可以實(shí)現(xiàn)并發(fā)操作。
本系統(tǒng)的開發(fā)目標(biāo)是以一種簡(jiǎn)單友好的方式方便用戶批量設(shè)置數(shù)據(jù)源,所以采用ArcEngine集成技術(shù)開發(fā)有針對(duì)性的軟件,用戶只需簡(jiǎn)單地添加存在數(shù)據(jù)無效的地圖文檔和設(shè)置各種數(shù)據(jù)源,便可以批量地處理。(1)基本功能。主要是打開地圖文檔時(shí),顯示所在路徑,方便用戶尋找;在設(shè)置數(shù)據(jù)源中,顯示數(shù)據(jù)源存儲(chǔ)路徑,為數(shù)據(jù)源的更新奠定基礎(chǔ);在地圖顯示模塊中,以便用戶及時(shí)查看數(shù)據(jù)更新的情況。(2)設(shè)置數(shù)據(jù)源。其主要是添加Shape文件、Raster文件、MDB數(shù)據(jù)庫(kù),GDB數(shù)據(jù)庫(kù)及ArcSDE數(shù)據(jù)庫(kù)多元化地理數(shù)據(jù),同時(shí)可顯示每個(gè)數(shù)據(jù)源的具體數(shù)據(jù)情況。(3)更新數(shù)據(jù)源。數(shù)據(jù)源的更新是整個(gè)模塊的重點(diǎn),在每次更新過程中,都會(huì)實(shí)時(shí)顯示數(shù)據(jù)的更新情況。比如數(shù)據(jù)是否更新成功,更新后數(shù)據(jù)的類型和存儲(chǔ)情況。
在數(shù)據(jù)源更新之前,用戶打開地圖文檔,若發(fā)現(xiàn)整個(gè)工作空間只有有限個(gè)圖層數(shù)據(jù)有效,用戶需要對(duì)整個(gè)地圖文檔的數(shù)據(jù)圖層進(jìn)行更新,打開系統(tǒng)的界面,針對(duì)地圖文檔中無效的圖層數(shù)據(jù),添加數(shù)據(jù)源完成數(shù)據(jù)的第一次更新(如圖1)。從更新結(jié)果可以看出,地圖文檔中已經(jīng)存在的數(shù)據(jù)圖層,結(jié)果顯示“不變”;從添加的數(shù)據(jù)源中,部分?jǐn)?shù)據(jù)更新“成功”,呈綠色字體;然而更新“失敗”的呈紅色字體。針對(duì)未更新成功的數(shù)據(jù),繼續(xù)添加其它的數(shù)據(jù)源,最后我們?cè)僦匦赂乱淮尾⒈4娓潞蟮貓D數(shù)據(jù)(如圖2)。至此,地圖文檔的所有無效數(shù)據(jù)更新完成。
本文利用Arc Engine組件和VS2010開發(fā)工具,設(shè)計(jì)了區(qū)別于ArcGISDesktop的數(shù)據(jù)源設(shè)置的數(shù)據(jù)源更新系統(tǒng),有效地實(shí)現(xiàn)了多元化數(shù)據(jù)存儲(chǔ)方式的數(shù)據(jù)源批量更新。整個(gè)系統(tǒng)功能操作簡(jiǎn)單,實(shí)現(xiàn)了打開需要更新的地圖文檔、添加不同數(shù)據(jù)源、數(shù)據(jù)源更新、實(shí)時(shí)查看地圖文的數(shù)據(jù)更新狀況等功能,以簡(jiǎn)潔且友好的界面幫助用戶批量處理無效圖層數(shù)據(jù)。
參考文獻(xiàn):
[1]湯國(guó)安,劉學(xué)軍,閭國(guó)年,盛業(yè)華,等.地理信息系統(tǒng)教程[M].北京:高等教育出版社,2007.
[2]陳述彭,魯學(xué)軍,周成虎.地理信息導(dǎo)論[M].北京:科學(xué)出版社,2000.
[3]胡鵬,黃杏元,華一新.地理信息教程[M].武漢:武漢大學(xué)出版社,2002.