于 蕾, 汪 軍, 桑 渤
(中國(guó)人民解放軍72946部隊(duì), 山東 淄博 255000)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,全數(shù)字化制圖已經(jīng)成為地理信息數(shù)據(jù)的一種主要的生產(chǎn)方式.數(shù)字測(cè)圖是地形圖測(cè)繪的發(fā)展方向,它具有高精度的特點(diǎn),同時(shí)由于市場(chǎng)上出現(xiàn)了各種測(cè)繪軟件的開(kāi)發(fā)與應(yīng)用,使得數(shù)字地圖的各種獲取方法變得更加準(zhǔn)確且簡(jiǎn)便易行[1].然而在實(shí)際的作業(yè)生產(chǎn)特別是地圖出版過(guò)程中,數(shù)字測(cè)圖提供的原始數(shù)據(jù)中的要素間存在著各種不符合制圖圖示規(guī)定和影響地圖美觀的關(guān)系錯(cuò)誤,而且這種錯(cuò)誤需要作業(yè)員憑借作業(yè)經(jīng)驗(yàn)來(lái)一一手動(dòng)處理,這在很大程度上影響了成圖速度和成圖質(zhì)量.
結(jié)合自身生產(chǎn)實(shí)際,提出了在數(shù)字地圖出版過(guò)程中,要素關(guān)系自動(dòng)處理的算法,并在此基礎(chǔ)上,開(kāi)發(fā)了相應(yīng)的關(guān)系處理工具并進(jìn)行了應(yīng)用,提高了數(shù)字制圖自動(dòng)化水平,縮短了成圖時(shí)間,提高了作業(yè)效率.
外業(yè)測(cè)量后,因?yàn)闇y(cè)量時(shí)間和其他原因,測(cè)量原始成果的符號(hào)規(guī)格、要素間關(guān)系、注記位置等都比較粗糙、簡(jiǎn)略,不符合印刷要求,必須按照《圖式》及有關(guān)規(guī)定進(jìn)行工藝加工和技術(shù)處理,制作符合相關(guān)要求的出版印刷原圖.
對(duì)于出版原圖來(lái)說(shuō),圖面效果是否清晰美觀,是一幅地圖質(zhì)量好壞的一個(gè)重要判斷依據(jù).這就要求處理好圖上各要素之間的相互關(guān)系,關(guān)系處理的目的就是為了避免次要要素與重要要素的符號(hào)發(fā)生沖突,對(duì)次要要素和符號(hào)進(jìn)行移位處理,把相互之間的要素關(guān)系交待清楚.因此,地物要素關(guān)系編輯處理也就成了地圖出版作業(yè)的一項(xiàng)重要內(nèi)容[2].
一幅地圖的地圖要素以點(diǎn)、線、面三種形式表示在地圖上.而要素的關(guān)系也可以簡(jiǎn)單的分解成點(diǎn)、線、面之間的關(guān)系,主要有點(diǎn)點(diǎn)關(guān)系、點(diǎn)線關(guān)系、點(diǎn)面關(guān)系、線線關(guān)系、線面關(guān)系和面面關(guān)系[3].
點(diǎn)狀要素分為實(shí)體點(diǎn)和方向點(diǎn),用平面上的一個(gè)點(diǎn)就可以表示它在圖上位置,因此其與其他點(diǎn)、線、面的關(guān)系都比較簡(jiǎn)單,只要移動(dòng)定位點(diǎn),其關(guān)系就能明確的表示出來(lái).
線狀要素則可以用中心定位軸線(有序點(diǎn)串)表示線狀要素的圖上位置和延伸走向.與其他線、面要素關(guān)系,則是通過(guò)要素上每個(gè)點(diǎn)位體現(xiàn)出來(lái).
面要素可以用外圍輪廓(閉合的有序點(diǎn)串)表示面狀要素的圖上位置和分布范圍,因此面要素也可認(rèn)為是始末結(jié)點(diǎn)重合的線要素,其關(guān)系類似于線要素與其他要素的關(guān)系處理[4].
通過(guò)以上分析,將地圖圖面要素關(guān)系就概略的歸納為兩條線之間的關(guān)系.此處我們不考慮對(duì)要素進(jìn)行化簡(jiǎn)概括,僅處理其之間的相對(duì)關(guān)系.對(duì)要素移位處理前,必須首先建立要素的優(yōu)先級(jí)別和移動(dòng)順序.其過(guò)程大致可分為以下幾個(gè)步驟:(1)檢查圖上是否有明顯的圖形重疊;(2)計(jì)算位移的方向和大?。?3)移開(kāi)次要的要素,驗(yàn)證位移后的效果;
此處的位移不是對(duì)整個(gè)要素的移動(dòng),而是通過(guò)對(duì)兩個(gè)要素進(jìn)行計(jì)算,確定其交疊的部分,然后對(duì)交疊的部分進(jìn)行分析處理,使其滿足地圖制圖的要求.
在實(shí)際的數(shù)字地圖生產(chǎn)中,為了提高成圖的速度與成果質(zhì)量,我們以作業(yè)中使用的MicroStation V8為作業(yè)平臺(tái),利用Visual C++進(jìn)行mdl二次開(kāi)發(fā)實(shí)現(xiàn),供以該平臺(tái)為數(shù)字地圖生產(chǎn)作業(yè)工具的用戶調(diào)用.MicroStation在管理地理數(shù)據(jù)庫(kù)方面具有得天獨(dú)厚的強(qiáng)大功能.包括直線、折線、曲線、封閉線、符號(hào)和注記等,每個(gè)要素都有如顏色、線型、線寬、層信息等屬性.坐標(biāo)系統(tǒng)可以是二維或三維的,根據(jù)需要在開(kāi)始作圖前選擇種子文件定義,許多轉(zhuǎn)換程序可以用于其他的CAD及制圖系統(tǒng)[5].
要素圖上間隔小于0.2mm時(shí),人眼不易區(qū)分,因此將兩要素的交疊部分間隔移開(kāi)0.2mm的間隔.設(shè)想將兩個(gè)要素要分開(kāi)0.2mm的間隔,要求次要要素除去與主要要素相交的點(diǎn)外每個(gè)點(diǎn)到主要要素上的最近距離應(yīng)該在0.2mm以上.分兩步進(jìn)行移位,如圖1所示.
圖1 算法流程圖
采用兩種方法確定:一是輸入設(shè)定,設(shè)定后軟件以此間隔作為兩要素中心線的間距比較值;二是建立控制表,記錄要素的線型和線寬的對(duì)應(yīng)表,在選擇要素后,從控制表中獲得線寬,計(jì)算出兩要素離開(kāi)0.2mm的圖面距離時(shí)中心線的間隔,中心線的間隔(dis)=次要要素的線寬(WidthC)/2+主要要素的線寬(WidthZ)/2+0.2mm的圖面間隔.
將主要要素A和次要要素B的坐標(biāo)分別提出,將次要要素的每一點(diǎn)依次計(jì)算到主要要素的最近距離點(diǎn),此兩點(diǎn)的連線必定垂直于A上此點(diǎn)的切線方向,兩點(diǎn)連線方向則為A上此點(diǎn)的法線方向,按此方向移動(dòng)要素B上的點(diǎn),則能以最快的速度,使兩要素分開(kāi)設(shè)定的間隔.根據(jù)計(jì)算結(jié)果,要素B上此點(diǎn)與要素A的關(guān)系主要有以下三類,我們分別采取了不同的處理辦法:
(1)要素B上此點(diǎn)與要素A的最短距離大于dis,此時(shí)說(shuō)明兩要素在此點(diǎn)方向上的距離足夠大,出圖后不會(huì)產(chǎn)生要素重疊,因此我們不需要移動(dòng)此點(diǎn).
(2)要素B上此點(diǎn)與要素A的最短距離等于0,此時(shí)說(shuō)明此點(diǎn)為兩要素的交點(diǎn),則此點(diǎn)應(yīng)該在要素A上,此時(shí)不對(duì)其進(jìn)行移動(dòng).
(3)要素B上此點(diǎn)與要素A的最短距離小于dis,此時(shí)說(shuō)明出圖后,兩要素在此點(diǎn)處會(huì)粘連而影響圖面效果,為此需要移動(dòng)上此點(diǎn),移動(dòng)距離= dis-兩點(diǎn)間的距離(dDis),移動(dòng)后以新坐標(biāo)生成要素.
依次循環(huán),對(duì)要素B上的每個(gè)點(diǎn)進(jìn)行處理,得到的則是新要素的中心線坐標(biāo),以此坐標(biāo)按原要素屬性重新生成要素B′,以動(dòng)態(tài)顯示的效果提供給作業(yè)人員查看,如果處理效果達(dá)到要求,只是單擊左鍵,完成新要素B′與要素B的替換.
如圖2所示,這是使用的MicroStation V8為作業(yè)平臺(tái),利用Visual C++進(jìn)行mdl二次開(kāi)發(fā)實(shí)現(xiàn)的,軟件將兩線性要素關(guān)系處理方法分為4類:整體平移、相離、部分平移、共邊.作業(yè)人員通過(guò)圖上兩要素之間的關(guān)系,選擇相應(yīng)處理方法,然后選擇要素進(jìn)行關(guān)系處理.
圖2 軟件運(yùn)行界面
兩要素間相離的距離設(shè)定后,選擇圖上想要移動(dòng)的要素,移動(dòng)鼠標(biāo),選中的要素會(huì)跟隨鼠標(biāo)移動(dòng),位置合適時(shí),用鼠標(biāo)確定完成要素的移動(dòng),如圖3所示.
圖3 整體平移
設(shè)定兩要素間相離的距離,然后選擇主要要素,再選擇次要要素,移動(dòng)鼠標(biāo),軟件自動(dòng)將次要要素上靠近主要要素的點(diǎn)移動(dòng)指定的距離,從而使兩要素相離,如圖4所示.
圖4 要素相離
當(dāng)一面狀要素與形狀為曲線的線狀要素距離較近時(shí),用相離的方法處理,會(huì)導(dǎo)致與面狀要素相鄰近部分的線狀要素變?yōu)橹本€,此時(shí)為了保持線狀要素的原有形狀特征,對(duì)線狀要素一定范圍內(nèi)的點(diǎn)都進(jìn)行移動(dòng),移動(dòng)后,要素能保持原有形狀,所以在高級(jí)設(shè)置中可以設(shè)置需要移動(dòng)的線狀要素的點(diǎn)的范圍,如圖5所示.
圖5 部分平移
確定需要共邊的兩個(gè)要素,選擇次要要素,然后選擇主要要素上需要共邊的第一個(gè)點(diǎn),移動(dòng)鼠標(biāo),軟件會(huì)自動(dòng)沿鼠標(biāo)移動(dòng)方向?qū)梢刂睾系揭黄饘?shí)現(xiàn)共邊,直到兩要素不需要共邊的位置,用鼠標(biāo)確定或取消,如圖6所示.
圖6 要素共邊
本算法根據(jù)相關(guān)地圖圖示的要求對(duì)地圖要素的
關(guān)系處理進(jìn)行了量化,而且在軟件的實(shí)現(xiàn)過(guò)程中通過(guò)計(jì)算機(jī)計(jì)算進(jìn)行控制,在生產(chǎn)過(guò)程中大大提高了地圖出版的精確化水平,在提高作業(yè)效率的同時(shí)有效的控制了成圖質(zhì)量.實(shí)踐證明該軟件運(yùn)行穩(wěn)定,界面人性化,操作方便,能快速、準(zhǔn)確的處理出版過(guò)程中遇到的要素關(guān)系處理這一棘手的作業(yè)問(wèn)題,受到了一線作業(yè)人員的好評(píng).
在相關(guān)單位系列比例尺地形圖生產(chǎn)及其它數(shù)字地圖地圖生產(chǎn)任務(wù)中,該工具已經(jīng)廣泛應(yīng)用到實(shí)際生產(chǎn)中,有效的提高了地圖出版過(guò)程中的自動(dòng)化水平,提高了工作效率.而基于該算法,我們可以根據(jù)不同的作業(yè)平臺(tái)開(kāi)發(fā)相應(yīng)的處理工具,供相應(yīng)的平臺(tái)調(diào)用,從而使該軟件更好的服務(wù)于各個(gè)平臺(tái),以完善地圖數(shù)字化生產(chǎn)的工藝流程,提高成果質(zhì)量,它的完善對(duì)于各個(gè)比例尺的地形圖、專題圖的制作出版將會(huì)發(fā)揮更大的作用.
[1] 蔡林,李學(xué)義.應(yīng)用數(shù)字測(cè)圖中的幾點(diǎn)體會(huì)[J].黑龍江水利科技,2005(1):23-23.
[2] 王家耀,孫群.地圖學(xué)原理與方法[M].北京:科學(xué)出版社,2006.
[3] 劉紀(jì)平.地圖數(shù)據(jù)庫(kù)圖形輸出中要素關(guān)系處理[J].測(cè)繪學(xué)報(bào),1994,23(3):222-223.
[4] 王光霞.地圖設(shè)計(jì)與編繪[M].北京:測(cè)繪出版社,2011.
[5] 許斌,宋宏偉,于燕青,等.基于Microstation的數(shù)字測(cè)圖軟件及使用[M].北京:解放軍出版社,2001.