薛 萍,趙建輝
(1.新疆維吾爾自治區(qū)測繪技術(shù)中心,新疆 烏魯木齊 830002;2.新疆維吾爾自治區(qū)第二測繪院,新疆 烏魯木齊 830002)
GeoMedia下入庫數(shù)據(jù)批量拼接技巧
薛 萍1,趙建輝2
(1.新疆維吾爾自治區(qū)測繪技術(shù)中心,新疆 烏魯木齊 830002;2.新疆維吾爾自治區(qū)第二測繪院,新疆 烏魯木齊 830002)
介紹并總結(jié)了GeoMedia下的入庫方法以及存在的問題,主要研究了在GeoMedia下入庫數(shù)據(jù)批量拼接處理技巧,詳細闡述了兩種處理方法。兩種處理方法在實際項目生產(chǎn)中都取得了良好的效果。
GeoMedia;入庫;Access;SQL語句;數(shù)據(jù)處理;GIS
基于Intergraph公司Jupiter技術(shù)的地理信息系統(tǒng)軟件GeoMedia,是一個在Windows平臺上運行的開放式桌面GIS系統(tǒng)。筆者在新疆克拉瑪依基礎(chǔ)測繪項目中應(yīng)用該軟件生產(chǎn)和加工DLG數(shù)據(jù)。本文闡述在GeoMedia中入庫數(shù)據(jù)拼接時存在的問題以及解決技巧。
作為一個地理信息顯示和分析工具,GeoMedia可以讓來自不同信息源、不同數(shù)據(jù)格式和不同投影方式的數(shù)據(jù)集成融合于同一環(huán)境之中,并實現(xiàn)這些不同數(shù)據(jù)源的空間數(shù)據(jù)和屬性數(shù)據(jù)進行多種復(fù)雜的查詢,產(chǎn)生一系列高質(zhì)量的視圖。在GeoMedia中,特征(feature)是通過幾何圖形在地圖上所表現(xiàn)出來的一個地理實體,通過非幾何性的屬性數(shù)據(jù)定義在一個數(shù)據(jù)庫中。倉庫(warehouse)對GeoMedia來說就是一個圖形數(shù)據(jù)的數(shù)據(jù)源。每一個倉庫僅包含一種數(shù)據(jù)類型,如 Access、MGE、ARC/INFO、Oracle、ArcView、Map Info或CAD。
GeoMedia中的數(shù)據(jù)通過多種方法實現(xiàn)了將圖形數(shù)據(jù)保存在Access小型數(shù)據(jù)庫、SQL Server中型數(shù)據(jù)庫和Oracle大型數(shù)據(jù)庫中。這就使得每次使用數(shù)據(jù)前都需要通過倉庫從工作區(qū)建立一個數(shù)據(jù)庫連接,在操作上顯得有些繁瑣。
另一方面,GeoMedia存儲的Access數(shù)據(jù)庫與Arc-GIS存儲的Access數(shù)據(jù)庫雖然在原理上基本一致,但在實際物理存儲方式和方法上有些差別,導(dǎo)致這兩種數(shù)據(jù)不能相互共享。尤其要指出的是:GeoMedia存儲的Access表結(jié)構(gòu)中ID索引為系統(tǒng)自動編號,但在GeoMedia處理數(shù)據(jù)拼接時又不能自動更新這個ID索引而導(dǎo)致數(shù)據(jù)部分丟失或出現(xiàn)錯誤。對于這個問題,本文第三節(jié)將作詳細闡述。
在GeoMedia下要實現(xiàn)數(shù)據(jù)拼接,需要把入庫的數(shù)據(jù)一幅一幅按先后順序打開,且每次只能合并兩個數(shù)據(jù)文件(注意源文件和目標文件的設(shè)定)。另外,如果不預(yù)先處理好ID索引的更新問題,就無法正常進行拼接操作。根據(jù)前面的分析和筆者的實踐經(jīng)驗,這里介紹兩種方式來快速處理Access入庫數(shù)據(jù)拼接問題。
2.1 對ID索引更新問題的預(yù)處理
在Access軟件下打開原數(shù)據(jù)庫文件,在表結(jié)構(gòu)設(shè)計視圖下把ID1字段的類型從“自動編號”修改為“文本”并保存;在更新查詢中執(zhí)行下列語句:
update AANPset ID1=[MAPID]+[ID1]
也可以在設(shè)計視圖中進行更新查詢(如圖1所示)。
圖1 更新查詢
2.2 表結(jié)構(gòu)不同時,在Access軟件下用表追加法
預(yù)處理完后,在Access軟件下打開原數(shù)據(jù)庫文件,選定一個表名,在菜單中選“插入-查詢-設(shè)計視圖”,在顯示表中選要追加的表項,然后在每項表格中選對應(yīng)的表結(jié)構(gòu)。最后在菜單中選“查詢-追加查詢”,將要追加的表結(jié)構(gòu)追加下表中,就完成了(見圖2)。
2.3 表結(jié)構(gòu)相同時,鏈接并將原數(shù)據(jù)導(dǎo)入到數(shù)據(jù)表中
預(yù)處理完后,在GeoMedia系統(tǒng)下創(chuàng)建一個新的數(shù)據(jù)庫表。鏈接原數(shù)據(jù)表和待追加的數(shù)據(jù)表,在數(shù)據(jù)倉庫菜單下選導(dǎo)出到特征類,將原來的數(shù)據(jù)表的數(shù)據(jù),全部導(dǎo)入到新建的數(shù)據(jù)表中。
圖2 追加表結(jié)構(gòu)
上述方法只試用于單幅圖的拼接處理。筆者采用ADOX (Microsoft Active X Data Objects Extensions for Data Definition Language and Security技術(shù))基于C#編寫了批處理程序,實現(xiàn)了批量拼接。
通過批處理,可以實現(xiàn)對文件夾下所有(*.MDB)入庫數(shù)據(jù)的拼接操作,減少人為出錯,提高了效率。
GeoMedia軟件同樣也是一個軟件開發(fā)環(huán)境,我們可以用標準的Windows開發(fā)工具如Microsoft Visual Basic或Visual C++來實現(xiàn)自定義功能。GeoMedia提供了三種開發(fā)方式:1)通過GeoMedia對象創(chuàng)建一個自定義應(yīng)用;2)采用COM技術(shù),通過GeoMedia Application對象來實現(xiàn)跨程序應(yīng)用;3)使用GeoMedia命令向?qū)韯?chuàng)建自定義命令。采用這其中的任何一種方法,我們都可以實現(xiàn)批量入庫數(shù)據(jù)的拼接操作。
本文詳細闡述了GeoMedia的入庫方法和分析了入庫數(shù)據(jù)。通過文中介紹的兩種方法實現(xiàn)了GeoMedia入庫數(shù)據(jù)的批量拼接,最后簡單介紹了GeoMedia的二次開發(fā)功能。其實在這兩種方法的基礎(chǔ)上,通過二次開發(fā)都可以實現(xiàn)數(shù)據(jù)的批量拼接處理,但要能更快地提高生產(chǎn)效率和數(shù)據(jù)質(zhì)量,還需要做進一步的研究和試驗。
[1] 韓光瞬,楊柏鋼,郭金麗,等.跨圖幅要素物理無縫拼接關(guān)鍵技術(shù)研究及軟件實現(xiàn)[J].測繪科學(xué),2010,35(1):119-120
[2] 杜四春,蔡立軍.C#程序設(shè)計[M].北京:中國水利水電出版社,2006
[3] 趙江洪.GIS中多圖幅自動接邊的實現(xiàn)方法探討[J].測繪通報,2006(2):50-52
[4] 羅德安.一個GeoMedia訪問擴展類的構(gòu)建[J].計算機系統(tǒng)應(yīng)用,2003,9(3):15-17
[5] 張書亮,閭過年,龔健雅,等.地理標示語言-Geo-Web基礎(chǔ)[M].北京:科學(xué)出版社,2007
Mosaic Techniques for Batch Data Inbound Based on Geo Media
by Xue Ping
This article had introduced and summarized the method for data inbound based on Geo Media and related existing issues,and mainly studied on mosaic techniques for batch data inbound based on Geo Media.Two processing methods had been depicted in details,which had produced very good results in practical project production.
Geo Media,data inbound,Access,SQL code (Page:9)
P208
B
1672-4623(2011)01-0009-02
2010-10-22
薛萍,高級工程師,主要從事國土資源信息化建設(shè)以及GIS信息系統(tǒng)的建設(shè)和遙感影像的分析與處理。