劉鐵標,趙龍(1.湖南省煤炭地質(zhì)勘查院,湖南 長沙 410014;.國防科學(xué)技術(shù)大學(xué)計算機學(xué)院網(wǎng)絡(luò)所,湖南 長沙 410073)
?
湖南省1∶1萬入庫E00格式基礎(chǔ)地理信息數(shù)據(jù)庫地形圖向MapGis轉(zhuǎn)換程序設(shè)計與應(yīng)用
劉鐵標1,2,趙龍2
(1.湖南省煤炭地質(zhì)勘查院,湖南 長沙 410014;2.國防科學(xué)技術(shù)大學(xué)計算機學(xué)院網(wǎng)絡(luò)所,湖南 長沙 410073)
摘 要在地質(zhì)工作中經(jīng)常遇到收集的圖件資料格式不一,如何轉(zhuǎn)換與共享一直是個難題,湖南省基礎(chǔ)地理信息1∶10000數(shù)字線劃圖入庫數(shù)據(jù)就是使用ESRI的E00通用交換格式,雖經(jīng)MapGis6.7文件轉(zhuǎn)換能自動轉(zhuǎn)換,但轉(zhuǎn)換后的點線面文件丟失圖形參數(shù),尤其注釋信息全無,無法還原,需手工逐步添加與修改,工作量大且易出錯,作者通過對MapGis6.7轉(zhuǎn)換后點、線、面文件進行分析,并與E00格式文件進行對比,找出對應(yīng)關(guān)系,提出注釋分字符中心點位算法,利用Visual Basic6.0編程,實現(xiàn)MapGis轉(zhuǎn)換后的點線面文件一次性自動轉(zhuǎn)換,完成地形圖E00格式到MapGis6.7格式的完全自動轉(zhuǎn)換與對接,簡化工作,提高效率,也為其它格式的入庫地形圖數(shù)據(jù)轉(zhuǎn)換提供參考與借鑒。
關(guān)鍵詞E00數(shù)據(jù);MapGis地形圖轉(zhuǎn)換;VB程序設(shè)計;屬性提取
近日筆者單位在一個煤炭地質(zhì)勘查立項項目中急需要用一批1∶1萬數(shù)字化地形圖作為底圖,而湖南省基礎(chǔ)地理信息中心只有紙質(zhì)圖或E00格式圖。由于任務(wù)重,時間緊,工作區(qū)范圍較大,若買紙質(zhì)版的地形圖進行掃描矢量化形成數(shù)字化地形圖,無法在規(guī)定時間完成任務(wù);若要求原承擔E00數(shù)據(jù)生產(chǎn)單位轉(zhuǎn)換成MapGis數(shù)字化圖,也需較長時間,無法趕上進度,影響本次立項設(shè)計與報告提交。
本人通過對E00格式入庫地形圖數(shù)據(jù)進行了解與分析,選擇購買E00格式入庫地形圖數(shù)據(jù)自行編程進行轉(zhuǎn)換。E00的文件是ESRI的一種通用交換格式文件,這種文件通過明碼的方式表達了Arc/Info中幾乎所有的矢量格式以及屬性信息,廣泛應(yīng)用于與其他軟件之間進行數(shù)據(jù)交換。該數(shù)據(jù)無法直接使用現(xiàn)有GIS軟件打開并形成完整的地圖形數(shù)據(jù),需對圖層文件中的圖元按《1∶5千,1∶1萬地形圖圖式》規(guī)范要求進行屬性提取,按CODE代碼生成圖形要素及標注注記等,再對其進行圖幅整飾方可顯示為標準地形圖數(shù)據(jù)。本文在MapGis6.7平臺基礎(chǔ)上,對該類E00入庫數(shù)據(jù)進行研究,利用VB 在MapGis中進行二次開發(fā),實現(xiàn)E00數(shù)據(jù)格式與MapGis格式標準地形圖的自動轉(zhuǎn)換。
1.1 數(shù)據(jù)的圖層劃分
湖南省第三測繪院生產(chǎn)的E00格式基礎(chǔ)地理信息數(shù)據(jù)庫地形圖共劃分為16個圖層,各圖層的幾何特征及圖層數(shù)據(jù)內(nèi)容見表1。不同生產(chǎn)單位圖層劃分也不一樣,本文以第三測繪院生產(chǎn)的E00數(shù)據(jù)為例。
表1 地形圖入庫數(shù)據(jù)庫圖層的劃分Table 1 Topographic map database partition storage layer
1.2 地理要素數(shù)據(jù)分類與代碼
1.2.1 地理要素數(shù)據(jù)分類
根據(jù)規(guī)范與建庫要求,地形圖矢量化要素共分測量控制點、水系、居民地與建(構(gòu))筑物、交通、管線及附屬設(shè)施、境界、地貌與土質(zhì)、
植被及輔助要素9大類。
1.2.2 地理要素數(shù)據(jù)分類代碼
地理要素均具有CODE(分類代碼)屬性字段,該字段字的詳細定義見表2。不同生產(chǎn)單位地理要素數(shù)據(jù)分類代碼也不一樣。
表2 地理要素數(shù)據(jù)分類代碼Table 2 Geographic feature data classification code
2.1 圖形數(shù)據(jù)轉(zhuǎn)換流程
批量E00格式圖層文件經(jīng)MapGis轉(zhuǎn)換后得到大量信息不完整MapGis格式的點線面文件,再經(jīng)自主開發(fā)程序“地形圖轉(zhuǎn)換工具”自動轉(zhuǎn)換,得到完整的MapGis格式全要素地形圖。數(shù)據(jù)轉(zhuǎn)換流程如圖1所示:
圖1 數(shù)據(jù)轉(zhuǎn)換流程圖Fig.1 Data conversion flowchart
在MapGis6.7批量文件轉(zhuǎn)換中,將原始E00格式文件轉(zhuǎn)換形成MapGis的點、線及面文件,但直接轉(zhuǎn)換得到的點線面文件未體現(xiàn)完整屬性內(nèi)容,因此需再對各圖層屬性進行提取或圖元參數(shù)按數(shù)據(jù)字典進行修改復(fù)原,才能編繪出完全正確的地形圖(表3)。
2.2 特殊要素轉(zhuǎn)換及參數(shù)修改
根據(jù)數(shù)據(jù)的圖層劃方案及文件轉(zhuǎn)換得到的點線面文件進行屬性結(jié)構(gòu)分析,分別處理各圖層
表3 原始E00文件與MapGis圖層文件轉(zhuǎn)換對照表Table 3 E00 original file MapGis layer file conversion table
文件圖元數(shù)據(jù),按照圖層數(shù)據(jù)屬性代碼及地理要素分類代碼表修改圖元數(shù)據(jù)及生成注記。下面對線文件屬性提取生成點注記、點文件按代碼規(guī)范要求更改點圖元參數(shù)及提取屬性生成注記、線文件按代碼規(guī)范要求更改線圖元參數(shù)、區(qū)文件按代碼規(guī)范要求更改區(qū)圖元參數(shù)等幾個方面講述轉(zhuǎn)換技巧與方法。
2.2.1 線文件屬性提取生成注記
以圖層文件“A.WL”為例,該圖層包含圖內(nèi)地名、水系、道路等級等注記,其屬性結(jié)構(gòu)件表4:
表4 注記圖層屬性結(jié)構(gòu)表Table 4 Annotation layer attribute table structure
在矢量編輯中添加A.WL文件,利用線文件自動線標注對TEXT字段屬性進行標注,再對標注結(jié)果文件進行編輯。若如此對線文件自動屬性分段標注,則存在問題:①注釋標注在注釋線上方,未依線為中心注記;②只能生成統(tǒng)一字體及字大小的注釋;③道路等級標注無需分段注釋,且沒與道路方向線垂直標注。處理好線文件按屬性自動正確標注是本次轉(zhuǎn)換中遇到的最難解決問題,因此采用VB對MapGis進行二次開發(fā)以轉(zhuǎn)換線文件屬性生成注記點文件,以實現(xiàn)斜向分字符注記。地形圖轉(zhuǎn)換程序從線文件中提取屬性內(nèi)容生成居民地、道路等級及水系注記的轉(zhuǎn)換效果如圖2,圖2a中的線方向轉(zhuǎn)成注記的標示方向,線的TEXT字段屬性轉(zhuǎn)換成注釋文字。
為解決上面難題,用注釋分字符中心點位算法:
圖2 按線圖元屬性生成注記文件Fig.2 Generating annotation files by line Element Properties
(取值n>1,i:1~n)
式中:Px0、 Py0為線段的起點, k為線段斜率,為第i個字符注釋的中心位置, D為注釋線段的長度。
2.2.2 點文件按代碼規(guī)范要求更改點圖元參數(shù)及
提取屬性生成注記
E00數(shù)據(jù)經(jīng)MapGis自帶的文件轉(zhuǎn)換工具轉(zhuǎn)換后生成的點文件內(nèi)容僅是子圖圖元,不能直接作為結(jié)果圖形文件,其子圖圖元存在參數(shù)不符合成圖的要求,且子圖圖元某些屬性未提取生成注釋等問題。如高程點圖元高程值屬性未標注、控制點圖元中控制點名及高程值需按地形圖圖式要求進行標注及獨立地物的圖形參數(shù)不正確等。若要處理此類問題,則需提取相應(yīng)的屬性值生成注釋,其子圖圖元參數(shù)需按要素代碼CODE屬性值進行相應(yīng)修改。用程序轉(zhuǎn)換的高程點、獨立地物及控制點效果見圖3。
圖3 按點圖元屬性修改參數(shù)并生成注釋Fig.3 Press point element properties modify the parameters and generate comments
2.2.3 線文件按代碼規(guī)范要求更改線圖元參數(shù)
以高等線圖層文件“E.WL”為例,該圖層文件包含地形等高線數(shù)據(jù),其的屬性結(jié)構(gòu)如表5。
針對此類文件,一般可以在矢量編輯中添加
表5 等高線圖層屬性結(jié)構(gòu)表Table 5 Contour Layer Properties Structure Table
相應(yīng)的線文件,可利用線編輯中的根據(jù)屬性賦參數(shù)修改線顏色及線型線寬等線圖元參數(shù),不過手工修改相對麻煩,且修改工作量大,若不同CODE屬性值較多時,無法確保所有圖元均被修改。如等高線需按高程值區(qū)分首曲線與計曲線;坎、小路、鐵路及地類線等需修改為相應(yīng)的顏色、線型及線寬等參數(shù)。用程序轉(zhuǎn)換對等高線、坎、小路、鐵路及地類線等線圖元要素轉(zhuǎn)換效果如圖4。
圖4 按線圖元屬性修改參數(shù)Fig.4 Press line element properties to modify the parameters
2.2.4 區(qū)文件按代碼規(guī)范要求更改區(qū)圖元參數(shù)
在矢量編輯中按代碼規(guī)范要求修改圖元參數(shù),并利用根據(jù)屬性修改區(qū)圖元參數(shù)。轉(zhuǎn)換程序自動對居民地、植被及水系等圖層文件區(qū)參數(shù)修改效果如圖5。
2.3 圖幅整飾
原始數(shù)據(jù)僅包含圖幅內(nèi)邊框線,無圖幅圖框等信息,利用MapGis自帶的投影變換程序可根據(jù)圖幅號生成標準圖框。
MapGis作為成熟實用的地理信息系統(tǒng)(GIS),它提供給用戶二次開發(fā)能力。MAPGIS提供完整的二次開發(fā)函數(shù)庫,MAPGIS二次開發(fā)函數(shù)庫包括:工作區(qū)基礎(chǔ)函數(shù)、圖形顯示輸出、工作區(qū)管理函數(shù)、圖形窗口操作、空間分析函數(shù)、地圖庫讀取顯示、圖形編輯函數(shù)等。用戶完全可以在MAPGIS平臺上開發(fā)面向各自領(lǐng)域的應(yīng)用系統(tǒng)。MAPGIS二次開發(fā)函數(shù)庫支持的語言包括Borlandc++、Visualc++、Visualbasic等高級語言程序設(shè)計環(huán)境。本文利用Visualbasic對MapGis進行程序設(shè)計。
3.1 數(shù)據(jù)庫設(shè)計
圖5 居民地、植被及水系等要素轉(zhuǎn)換效果圖Fig.5 Residential areas,vegetation,and water systems and other elements of the conversion renderings
數(shù)據(jù)庫采用Access數(shù)據(jù)庫,數(shù)據(jù)庫分兩類數(shù)據(jù)表:一類是系統(tǒng)功能約束的數(shù)據(jù)表,設(shè)定數(shù)據(jù)轉(zhuǎn)換方案及圖層轉(zhuǎn)換函數(shù)與文件輸入、輸出對照關(guān)系的數(shù)據(jù)表;一類是屬性代碼與圖元參數(shù)的對照表,包含點、線、面三種要素的對照信息,詳見表6~10。
表6 系統(tǒng)功能約束的數(shù)據(jù)表(SysTable)Table 6 System functional constraint data table
表7 子圖元要素分類代碼與參數(shù)對照表(PntTable)Table 7 Sub-pixel elements of classification codes and parameters table
表8 線圖元要素分類代碼與參數(shù)對照表(LinTable)Table 8 Line element element classification codes and parameters table
表9 區(qū)圖元要素分類代碼與參數(shù)對照表(RegTable)Table 9 Area element element classification codes and parameters table
表10 注記要素分類代碼與參數(shù)對照表(ZjTable)Table 10 Annotation feature class code and parameter table
3.2 轉(zhuǎn)換函數(shù)設(shè)計
為了保持程序的靈活性,把程序功能與數(shù)據(jù)進行了分離,主要設(shè)計了四個程序函數(shù),通過讀取數(shù)據(jù)表為輸入?yún)?shù)對原始數(shù)據(jù)進行轉(zhuǎn)換處理(表11)。
表11 轉(zhuǎn)換函數(shù)功能表Table 11 Contour layer properties structure table
3.3 轉(zhuǎn)換程序設(shè)計
程序界面如圖6,左邊為MapGis轉(zhuǎn)換后存放文件目錄,右邊依次為轉(zhuǎn)換方案、轉(zhuǎn)換圖層及轉(zhuǎn)換文件,其中轉(zhuǎn)換文件可選整個圖層轉(zhuǎn)換,也可選定單個或多個文件轉(zhuǎn)換,轉(zhuǎn)換結(jié)果文件自動放在原來對應(yīng)的目錄下,程序效果如下:
轉(zhuǎn)換程序無需安裝,只要有MapGis6.7平臺支撐電腦上雙擊主程序即可運行,程序主操作界面如圖6所示,轉(zhuǎn)換操作步驟:①在左側(cè)選擇MapGis文件轉(zhuǎn)換模塊批處理過的E00數(shù)據(jù)文件目錄;②在主程序右側(cè)下拉選擇轉(zhuǎn)換方案,并點擊查詢轉(zhuǎn)換圖層按鈕;③點擊下方圖層轉(zhuǎn)換按鈕,程序自動轉(zhuǎn)換相應(yīng)的圖層文件內(nèi)容到對應(yīng)的輸出文件。
需要說明的是,湖南省的入庫E00數(shù)據(jù)由我省第二測繪院及第三測繪院兩家最大基礎(chǔ)地理數(shù)據(jù)生產(chǎn)加工單位完成,數(shù)據(jù)圖層劃分不盡相同,代碼數(shù)據(jù)字典約束也不一致。本次開發(fā)的轉(zhuǎn)換工具利用數(shù)據(jù)庫方式對轉(zhuǎn)換處理操作進行數(shù)據(jù)表約定,實現(xiàn)了對不同數(shù)據(jù)規(guī)范的自動轉(zhuǎn)換。
圖6 程序運行界面Fig.6 The program's interface
我們應(yīng)用此開發(fā)程序完成批量文件自動轉(zhuǎn)換,已完成幾十幅圖的成圖,經(jīng)實際檢驗,要素完整,屬性全面,內(nèi)容正確,此程序在我們成圖工作應(yīng)用中得到反復(fù)檢驗與有效應(yīng)用。
如圖7所示,是稼書園(G49G006062)圖幅地形圖應(yīng)用此程序轉(zhuǎn)換的成果圖。從圖中可看出,圖a E00數(shù)據(jù)文件經(jīng)MapGis轉(zhuǎn)換得到的圖形顯得非常雜亂,點線面圖形參數(shù)均不正確,且無任何注記類注釋,圖形信息嚴重丟失。圖a中點線面文件經(jīng)自主開發(fā)程序轉(zhuǎn)換后得到圖b結(jié)果圖,圖形各參數(shù)正確,注記規(guī)范,各圖形要素完整,配合圖幅整飾后形成了一幅完整的地形圖,此轉(zhuǎn)換一次性自動完成,非常方便與快捷。
圖7 地形圖各圖層要素轉(zhuǎn)換前后對照圖Fig.7 Topographic map features into each layer after images
通過對入庫E00格式地形圖數(shù)據(jù)的分析,以MapGis6.7為繪圖編輯平臺,對MapGis自帶的文件轉(zhuǎn)換模塊直接轉(zhuǎn)換E00數(shù)據(jù)生成的點、線及面文件,依據(jù)原E00數(shù)據(jù)建庫規(guī)范,從對線文件屬性提取生成點注記、點文件按代碼規(guī)范要求更改點圖元參數(shù)及提取屬性生成注記、線文件按代碼規(guī)范要求更改線圖元參數(shù)、區(qū)文件按代碼規(guī)范要求更改區(qū)圖元參數(shù)等方面研究如何在MapGis中形成標準的地形圖要素,并利用Visual Basic6.0 在MapGis基礎(chǔ)上開發(fā)了轉(zhuǎn)換工具,該程序通過建立分類代碼與圖元參數(shù)對照表及系統(tǒng)功能約束
數(shù)據(jù)表Access數(shù)據(jù)mdb文件,且支持不同的轉(zhuǎn)換方案,能完成E00格式入庫地形圖數(shù)據(jù)向MapGis圖形文件的自動轉(zhuǎn)換工作。該成果已成功應(yīng)用到我院煤炭地質(zhì)勘查立項項目中E00數(shù)據(jù)地形圖轉(zhuǎn)換工作,且轉(zhuǎn)換效果很好,極大提高了工作效率,也為其它格式的入庫地形圖數(shù)據(jù)轉(zhuǎn)換提供參考與借鑒。
參考文獻/Reference
[1]求是科技.Visual Basic6.0程序設(shè)計與開發(fā)技術(shù)大全[M].人民郵電出版社,2004.
[2][美]哈爾弗森(Malvorson,M.).Visual Basic2005從入門到精通[M].湯涌濤,等,譯.清華大學(xué)出版社,2006.
[3]MAPGIS二次開發(fā)培訓(xùn)教程 中地軟件叢書編委會,2001.
Hunan 1∶10000 Basic Geographic Information Storage E00 Format Database Program Design and Application of Topographic Map to Convert MapGis
Liu Tiebiao1,2,Zhao Long2
(1.Hunan Coal Geological Exploration Institute,Changsha Hunan 410014;2.Computer Science,National University of Defense Technology networks,Changsha Hunan 410073)
Abstract:In geological work often encountered collected maps of varying data formats,how to convert and sharing has been a problem,Hunan,geomatics 1:10000 DLG data warehousing is the use of ESRI's E00 common interchange format,despite MapGis6.7 file conversion can be automatically converted,but the converted file is missing the point,line and plane graphics parameters,in particular,no annotations,you can not restore,you need to manually add and modify gradually,heavy workload and error-prone,the author of MapGis6.7 after the conversion point,line,surface files are analyzed and compared with the E00 format file,find the corresponding relationship between the proposed sub-character comment center bit algorithm,using Visual Basic6.0 programming,MapGis converted file once-point line of automatic conversion,complete topographic map of E00 format to MapGis6.7 fully automated docking with the format conversion,simplifying the work to improve efficiency,but also provide reference and experience for the storage of topographic map data conversion to other formats.
Key Words:E00 data;MapGis topographic maps;VB programming;attribute extraction
收稿日期:2016-1-5;改回日期:2016-2-23。
*第一作者簡介劉鐵標,男,1980年生,軟件設(shè)計師,測繪工程、軟件工程碩士,主要從事礦山數(shù)字化信息建設(shè)工作。E-mail:138714989@qq.com
文章編號:1672-5603(2016)01-080-6
中圖分類號:P628+.1
文獻標識碼:A