薛 萍,趙建輝
(1.新疆維吾爾自治區測繪技術中心,新疆 烏魯木齊 830002;2.新疆維吾爾自治區第二測繪院,新疆 烏魯木齊 830002)
GeoMedia下入庫數據批量拼接技巧
薛 萍1,趙建輝2
(1.新疆維吾爾自治區測繪技術中心,新疆 烏魯木齊 830002;2.新疆維吾爾自治區第二測繪院,新疆 烏魯木齊 830002)

介紹并總結了GeoMedia下的入庫方法以及存在的問題,主要研究了在GeoMedia下入庫數據批量拼接處理技巧,詳細闡述了兩種處理方法。兩種處理方法在實際項目生產中都取得了良好的效果。
GeoMedia;入庫;Access;SQL語句;數據處理;GIS
基于Intergraph公司Jupiter技術的地理信息系統軟件GeoMedia,是一個在Windows平臺上運行的開放式桌面GIS系統。筆者在新疆克拉瑪依基礎測繪項目中應用該軟件生產和加工DLG數據。本文闡述在GeoMedia中入庫數據拼接時存在的問題以及解決技巧。
作為一個地理信息顯示和分析工具,GeoMedia可以讓來自不同信息源、不同數據格式和不同投影方式的數據集成融合于同一環境之中,并實現這些不同數據源的空間數據和屬性數據進行多種復雜的查詢,產生一系列高質量的視圖。在GeoMedia中,特征(feature)是通過幾何圖形在地圖上所表現出來的一個地理實體,通過非幾何性的屬性數據定義在一個數據庫中。倉庫(warehouse)對GeoMedia來說就是一個圖形數據的數據源。每一個倉庫僅包含一種數據類型,如 Access、MGE、ARC/INFO、Oracle、ArcView、Map Info或CAD。
GeoMedia中的數據通過多種方法實現了將圖形數據保存在Access小型數據庫、SQL Server中型數據庫和Oracle大型數據庫中。這就使得每次使用數據前都需要通過倉庫從工作區建立一個數據庫連接,在操作上顯得有些繁瑣。
另一方面,GeoMedia存儲的Access數據庫與Arc-GIS存儲的Access數據庫雖然在原理上基本一致,但在實際物理存儲方式和方法上有些差別,導致這兩種數據不能相互共享。尤其要指出的是:GeoMedia存儲的Access表結構中ID索引為系統自動編號,但在GeoMedia處理數據拼接時又不能自動更新這個ID索引而導致數據部分丟失或出現錯誤。對于這個問題,本文第三節將作詳細闡述。
在GeoMedia下要實現數據拼接,需要把入庫的數據一幅一幅按先后順序打開,且每次只能合并兩個數據文件(注意源文件和目標文件的設定)。另外,如果不預先處理好ID索引的更新問題,就無法正常進行拼接操作。根據前面的分析和筆者的實踐經驗,這里介紹兩種方式來快速處理Access入庫數據拼接問題。
2.1 對ID索引更新問題的預處理
在Access軟件下打開原數據庫文件,在表結構設計視圖下把ID1字段的類型從“自動編號”修改為“文本”并保存;在更新查詢中執行下列語句:
update AANPset ID1=[MAPID]+[ID1]
也可以在設計視圖中進行更新查詢(如圖1所示)。

圖1 更新查詢
2.2 表結構不同時,在Access軟件下用表追加法
預處理完后,在Access軟件下打開原數據庫文件,選定一個表名,在菜單中選“插入-查詢-設計視圖”,在顯示表中選要追加的表項,然后在每項表格中選對應的表結構。最后在菜單中選“查詢-追加查詢”,將要追加的表結構追加下表中,就完成了(見圖2)。
2.3 表結構相同時,鏈接并將原數據導入到數據表中
預處理完后,在GeoMedia系統下創建一個新的數據庫表。鏈接原數據表和待追加的數據表,在數據倉庫菜單下選導出到特征類,將原來的數據表的數據,全部導入到新建的數據表中。

圖2 追加表結構
上述方法只試用于單幅圖的拼接處理。筆者采用ADOX (Microsoft Active X Data Objects Extensions for Data Definition Language and Security技術)基于C#編寫了批處理程序,實現了批量拼接。


通過批處理,可以實現對文件夾下所有(*.MDB)入庫數據的拼接操作,減少人為出錯,提高了效率。
GeoMedia軟件同樣也是一個軟件開發環境,我們可以用標準的Windows開發工具如Microsoft Visual Basic或Visual C++來實現自定義功能。GeoMedia提供了三種開發方式:1)通過GeoMedia對象創建一個自定義應用;2)采用COM技術,通過GeoMedia Application對象來實現跨程序應用;3)使用GeoMedia命令向導來創建自定義命令。采用這其中的任何一種方法,我們都可以實現批量入庫數據的拼接操作。
本文詳細闡述了GeoMedia的入庫方法和分析了入庫數據。通過文中介紹的兩種方法實現了GeoMedia入庫數據的批量拼接,最后簡單介紹了GeoMedia的二次開發功能。其實在這兩種方法的基礎上,通過二次開發都可以實現數據的批量拼接處理,但要能更快地提高生產效率和數據質量,還需要做進一步的研究和試驗。
[1] 韓光瞬,楊柏鋼,郭金麗,等.跨圖幅要素物理無縫拼接關鍵技術研究及軟件實現[J].測繪科學,2010,35(1):119-120
[2] 杜四春,蔡立軍.C#程序設計[M].北京:中國水利水電出版社,2006
[3] 趙江洪.GIS中多圖幅自動接邊的實現方法探討[J].測繪通報,2006(2):50-52
[4] 羅德安.一個GeoMedia訪問擴展類的構建[J].計算機系統應用,2003,9(3):15-17
[5] 張書亮,閭過年,龔健雅,等.地理標示語言-Geo-Web基礎[M].北京:科學出版社,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
薛萍,高級工程師,主要從事國土資源信息化建設以及GIS信息系統的建設和遙感影像的分析與處理。