楊玉川
摘要:隨著測(cè)繪地理信息行業(yè)的持續(xù)發(fā)展,新型地形圖生產(chǎn)和應(yīng)用對(duì)測(cè)繪數(shù)據(jù)提出了更高的要求。本論述結(jié)合當(dāng)前測(cè)繪行業(yè)中制圖與建庫(kù)數(shù)據(jù)圖庫(kù)一體化生產(chǎn)的實(shí)際需要,通過(guò)對(duì)Microstation V7 DGN數(shù)據(jù)及山維EPS數(shù)據(jù)兩種數(shù)據(jù)格式在結(jié)構(gòu)和符號(hào)表達(dá)方面進(jìn)行分析,在EPS平臺(tái)環(huán)境下利用模板控制技術(shù)和編程的方法,采用建立數(shù)據(jù)對(duì)照關(guān)系和VbScript腳本的方法,實(shí)現(xiàn)了dgn數(shù)據(jù)到eps數(shù)據(jù)之間的轉(zhuǎn)換,極大地提高了數(shù)據(jù)的交互利用和測(cè)繪產(chǎn)品的生產(chǎn)效率,可為今后跨平臺(tái)數(shù)據(jù)轉(zhuǎn)換提供參考經(jīng)驗(yàn)。
關(guān)鍵詞: Microstation V7;山維EPS;數(shù)據(jù)格式轉(zhuǎn)換;VBScript腳本
中圖分類號(hào):P208???????????? 文獻(xiàn)標(biāo)志碼:A
Microstation V7是一個(gè)可互操作的CAD平臺(tái),該平臺(tái)編輯的圖形格式為dgn。該平臺(tái)提供完善的工具和開發(fā)環(huán)境,廣泛應(yīng)用于航測(cè)數(shù)字測(cè)圖以及地形圖編繪[1]。山維EPS平臺(tái)則綜合圖形繪制平臺(tái)(CAD)技術(shù)與地理信息系統(tǒng)(GIS)技術(shù),以數(shù)據(jù)庫(kù)為核心,將圖形和屬性一體化,從生產(chǎn)源頭支持測(cè)繪成果的信息化,實(shí)現(xiàn)測(cè)量外業(yè)、內(nèi)業(yè)、入庫(kù)的一體化[2]。由于Microstation 與EPS 采用的是不同的數(shù)據(jù)組織方式和數(shù)據(jù)格式,二種數(shù)據(jù)之間不能直接進(jìn)行交互轉(zhuǎn)換,為圖庫(kù)一體化生產(chǎn)和數(shù)據(jù)深加工帶來(lái)諸多不便。本論述通過(guò)分析兩種不同的圖形數(shù)據(jù)結(jié)構(gòu)和符號(hào)表達(dá)方式,主要探索利用EPS模板控制技術(shù)和 VbScript 腳本將 Microstation V7版本的 dgn格式數(shù)據(jù)轉(zhuǎn)換為EPS軟件的格式數(shù)據(jù)的方法,實(shí)現(xiàn)數(shù)據(jù)交互利用。
1 Microstation圖形數(shù)據(jù)結(jié)構(gòu)分析
在 Microstation 軟件中,層管理器和層顯示器為創(chuàng)建的圖形元素提供高效的管理辦法,用戶可以將創(chuàng)建好的圖形元素分別指定在不同的層中,也可以在定義好的層中添加圖形元素,從而對(duì)各元素實(shí)現(xiàn)集成且高效的管理[3]。圖形數(shù)據(jù)之間則通過(guò)層、線型、顏色、線寬進(jìn)行管理,單元、線、面、注記等要素通過(guò)線型庫(kù)和單元庫(kù)進(jìn)行定義。
在 Microstation 中使用符號(hào)時(shí),必須首先連接相應(yīng)的符號(hào)庫(kù)、單元庫(kù)和字體庫(kù)。用戶可以結(jié)合自身生產(chǎn)現(xiàn)狀,遵照《1∶500、1∶1000、1∶2000地形圖圖式》和《1∶500、1∶1000、1∶2000地形圖要素編碼》,通過(guò)單元庫(kù)編輯和線型編輯器對(duì)單元庫(kù)文件和線型庫(kù)文件進(jìn)行定義和編輯,實(shí)現(xiàn)要素的規(guī)范化表達(dá)和標(biāo)準(zhǔn)制定。
2 EPS 圖形數(shù)據(jù)結(jié)構(gòu)分析
在EPS平臺(tái)中所有點(diǎn)、線、面對(duì)象都有一個(gè)唯一編碼(Code),平臺(tái)通過(guò)編碼特征屬性表FeatureCodeTB和 SymbolScriptTB來(lái)管理和定義數(shù)據(jù)要素,兩表之間則以 Code(編碼)為紐帶。符號(hào)描述表中,EPS利用字符代碼作為描述語(yǔ)言來(lái)繪制點(diǎn)、線、面、注記等要素,描述語(yǔ)言定義符號(hào)樣式、線型、填充樣式及復(fù)雜地物的嵌套關(guān)系;編碼特征屬性表中,則定義編碼的符號(hào)化描述,并以編碼為主導(dǎo)定義該編碼所代表的實(shí)體,諸如實(shí)體類型、所屬圖層、顏色、線型、線寬等其他屬性[4]。
3轉(zhuǎn)換思路
在 EPS 平臺(tái)中,利用 VbScript 腳本打開要轉(zhuǎn)換的 Microstation 文件,讀取要轉(zhuǎn)換的所有圖形元素,利用 SSProcess.GetSelGeoValue()和SSProcess.GetSelNoteVal? ue()方法獲得元素的選擇集。根據(jù)數(shù)據(jù)特點(diǎn)對(duì)匹配條件進(jìn)行設(shè)置,判斷獲得的元素是哪一種類型的元素:直線、線串、復(fù)雜鏈、多邊形、復(fù)雜多邊形、弧、曲線、橢圓、單元、共享單元、文本節(jié)點(diǎn)、文本等,然后根據(jù)模板中類型、圖層、顏色、線型、單元等對(duì)照關(guān)系,獲取epscode編碼,完成數(shù)據(jù)的轉(zhuǎn)換[5]。
4數(shù)據(jù)格式轉(zhuǎn)換
4.1模板定制
EPS工程模板作為EDB文件的基礎(chǔ),是一種Acess 文件型數(shù)據(jù)庫(kù),全面定義了EDB文件數(shù)據(jù)結(jié)構(gòu),包括地物編碼、要素樣式、基本屬性、擴(kuò)展屬性等[6]?;贓PS 中 FeatureCodeTB 表,根據(jù) Microstation 中要素的層名,顏色、線型、單元名等,定制地物要素轉(zhuǎn)換對(duì)照表Featu? reCodeTB_DGNIN(見表1所列),及其注記要素轉(zhuǎn)換對(duì)照表 NoteTemplateTB_DGNIN(見表2所列),用于數(shù)據(jù)轉(zhuǎn)換時(shí)與epscode編碼的對(duì)照[5]。
4.2數(shù)據(jù)轉(zhuǎn)換腳本實(shí)現(xiàn)
在山維EPS軟件腳本環(huán)境中,采用VBScript編寫數(shù)據(jù)格式轉(zhuǎn)換腳本,根據(jù)數(shù)據(jù)實(shí)際情況定制相應(yīng)的數(shù)據(jù)對(duì)照模板,通過(guò)條件匹配,將DGN數(shù)據(jù)一一對(duì)應(yīng)轉(zhuǎn)換為 EPS 的編碼數(shù)據(jù),實(shí)現(xiàn)不同格式數(shù)據(jù)的無(wú)損轉(zhuǎn)換。
4.2.1對(duì)象獲取
通過(guò)SSProcess.GetSelGeoValue()函數(shù)獲取對(duì)象類型,對(duì)需要調(diào)入的數(shù)據(jù)進(jìn)行分類處理,獲取對(duì)象的符號(hào)類型、層名、DGN 線型名稱、單元名稱和顏色號(hào)等信息。該功能主要代碼如下:
SSObj_Type= SSProcess.GetSelGeoValue(i, "SSObj _ Type")
SSObj_LayerName= SSProcess.GetSelGeoValue (i, "SSObj_LayerName")
DGNLineStyleName= SSProcess.GetSelGeoValue (i, "[DGNLineStyleName]")
DgnCellName= SSProcess.GetSelGeoValue(i, "[DgnCellName]")
DgnColorIndex= SSProcess.GetSelGeoValue(i, "[DgnColorIndex]")8FFE0822-1633-45AD-A29B-D42F973F03ED
4.2.2點(diǎn)編碼對(duì)照
設(shè)置點(diǎn)類型匹配條件,對(duì)類型為點(diǎn)的對(duì)象,若層名與調(diào)入表中的相符,單元名稱與調(diào)入表中的別名相符,顏色與調(diào)入表中的色號(hào)相符,則獲取調(diào)入表相符的 Code編碼。點(diǎn)要素匹配條件主要代碼如下:
condition ="Feature.GeoType=0 and Feature.Layer? Name ='"& SSObj_LayerName &"'and Feature.Byname ='"& DgnCellName &"'"&"and Feature.LineColor ="& DgnColorIndex
epscode = SSProcess.FindFeatureCode("FeatureCo? deTB_DGNIN", condition)
若匹配條件獲取的編碼不為空,則設(shè)置獲取對(duì)象的ID,對(duì)象名稱、X方向縮放系數(shù)和Y方向縮放系數(shù),并將獲取的eps編碼賦值給該要素,完成數(shù)據(jù)轉(zhuǎn)換。要素賦值代碼如下:
SSProcess.SetSelGeoValue i, "SSObj_ID", "0"? SSProcess.SetSelGeoValue i, "SSObj_Name", "" SSProcess.SetSelGeoValue i, "SSObj_ScaleX", "1"
SSProcess.SetSelGeoValue i, "SSObj_ScaleY", "1"
SSProcess.ResetSelGeoByCode i, CLng(epscode)4.2.3線要素編碼對(duì)照
設(shè)置線要素匹配條件,對(duì)類型不為點(diǎn)且是否反向?yàn)?對(duì)象,若層名與調(diào)入表中的相符,別名與線型一致,調(diào)入表中色號(hào)與DGN色號(hào)一致,則獲取調(diào)入表相符的 Code編碼。線要素匹配條件主要代碼如下:
condition="Feature.GeoType<>0 and Feature.Re? verse =1 and Feature.LayerName ='"& SSObj_LayerName &"'and Feature.Byname ='"& DGNLineStyleName &"'and Feature.LineColor ="& DgnColorIndex &""
SSProcess.ResetSelGeoByCode i, CLng(epscode)4.2.4注記要素編碼對(duì)照
通過(guò) SSProcess.GetSelNoteCount 函數(shù)獲取注記數(shù)量,對(duì)注記進(jìn)行遍歷,獲取注記的層面和顏色,設(shè)置匹配條件,若與對(duì)照表中的層名和顏色相符,則獲取條件相符的注記分類號(hào)。注記要素匹配條件主要代碼如下:
noteCount = SSProcess.GetSelNoteCount
NoteLayerName=SSProcess.GetSelNoteValue(i, "SSObj_LayerName")NoteColor = SSProcess.GetSelNote? Value(i, "[DgnColorIndex]")
matchConditions ="NoteTemplate.LayerName='"& NoteLayerName &"' and NoteTemplate.FontColor ="& NoteColor'
fontclass=SSProcess.FindNoteClass("NoteTempla? teTB_DGNIN", matchConditions )
5結(jié)束語(yǔ)
本論述通過(guò)探討分析Microstation 和EPS 的圖形數(shù)據(jù)結(jié)構(gòu),應(yīng)用EPS模板對(duì)照技術(shù),采用VbScript腳本的方式,提出一套完整的Microstation DGN 到山維EPS地形要素?zé)o損轉(zhuǎn)換的解決方案,實(shí)現(xiàn)兩種數(shù)據(jù)格式之間的轉(zhuǎn)換,提高數(shù)據(jù)的交互利用,可為今后同類項(xiàng)目的建設(shè)提供參考經(jīng)驗(yàn)。
參考文獻(xiàn):
[1]劉朋俊,尚俊玲,李引生,等.Microstation 軟件在數(shù)字地形圖測(cè)繪中的應(yīng)用[J].勘察科學(xué)技術(shù),2007(3):50-52.
[2]李其龍.清華山維EPS 內(nèi)外業(yè)一體化的操作與應(yīng)用[C]//云南省測(cè)繪地理信息學(xué)會(huì)2017年學(xué)術(shù)年會(huì)論文集,2017.
[3]王昌翰,何德平.DGN數(shù)據(jù)到ARC/IFO數(shù)據(jù)轉(zhuǎn)換[J].城市勘測(cè),2007(2):22-24.
[4]覃豪杰,黃彩軍,方振華.清華山維EPS到南方CASS地形數(shù)據(jù)無(wú)損轉(zhuǎn)換研究[J].地理空間信息,2013,11(3):88-89,92,3.
[5]張敏,林君強(qiáng).基于模板對(duì)照的EPS到CASS 的全要素?zé)o損轉(zhuǎn)換[J].龍巖學(xué)院學(xué)報(bào),2019,37(2):14-18.
[6]蔡云鐙.淺議EPS至CAD數(shù)據(jù)轉(zhuǎn)換中的信息映射機(jī)制[J].科技展望,2015,25(17):116,118.8FFE0822-1633-45AD-A29B-D42F973F03ED