?

CorelDRAW地圖數據自動化質檢模塊的研究和實現

2022-02-25 21:42黃臻蔡小青姜春旭
科技信息·學術版 2022年8期
關鍵詞:圖層符號道路

黃臻 蔡小青 姜春旭

摘要:CorelDRAW軟件因其強大的平面美化功能在專題地圖制圖領域應用廣泛,但作為一款矢量繪圖軟件,CorelDRAW并不具備專業的地圖質檢功能。因此,本文提出利用VBA語言對CorelDRAW進行二次開發,實現圖面壓蓋、道路懸掛、道路連接等問題自動化檢查功能。實踐表明,該方法能快速、準確地發現問題,節約了人工檢查時間,提高了地圖質檢效率。

關鍵詞:CorelDRAW;VBA;地圖質檢;圖面壓蓋;道路懸掛;道路連接

0 引言

地圖的表達錯誤直接影響地圖的正確使用,信息的錯誤傳遞也會造成讀圖的不適和誤解。一幅完整地圖產品的呈現,還需要通過一系列嚴密的質量檢查環節。傳統的地圖數據質檢通常由人工進行逐屏檢查,檢查速度和質量完全依賴檢查人員,檢查結果往往不全面,還會有遺漏。

在專題地圖編繪領域,具備極強平面編輯和美化功能的CorelDRAW軟件頗受制圖工作者的喜愛。雖然它在成圖制圖方面能很好滿足需求,但在地圖質檢方面,還很難找到適用的工具去輔助檢查工作。CorelDRAW從10.0版本以后開始支持VBA二次開發[1],逐步實現了符號替換[2]、河流漸變[1]、中英文注記對照[3]等繁復操作的自動化處理。

目前,國內相關學者針對CorelDRAW地圖制圖數據質檢方面的研究還比較少,主要集中在制圖方案的標準化檢查[4],如圖層分層的規范檢查、符號和注記正確表示檢查、符號和圖層一致性檢查等,對于在圖面壓蓋、道路懸掛、道路連接問題方面的檢查并沒有給出很好的解決方案。

因此,本文提出了利用VBA語言二次開發擴展CorelDRAW軟件的地圖數據質檢功能的一個解決方式,實現圖面壓蓋、道路懸掛、道路連接等問題的自動化檢查,從而提升檢查質量和效率。

1研究目標

本文從CorelDRAW地圖數據質檢的一般流程出發,以減少人工檢查工作量和提高檢查準確性為目的,總結知識經驗,將檢查規則轉化為算法思路,基于CorelDRAW VBA平臺,通過二次開發檢查輔助模塊,實現對CorelDRAW地圖數據在圖面壓蓋、道路懸掛、道路連接方面問題的自動化檢測和提取,旨在快速、準確地發現和定位圖面問題,輔助質檢人員精準掌握問題底數,彌補CorelDRAW軟件在地圖質檢功能方面的缺失。

2功能設計

地圖數據質檢模塊是在現有成熟地圖質量體系的基礎上,按照一般地圖的質檢邏輯和流程進行設計,開發能夠在CorelDRAW軟件中進行交互執行的自動化檢查程序,擴展軟件的地圖質檢功能,實現圖面壓蓋、道路懸掛檢測和道路連接的機助檢查和問題上報。

3實現方法

3.1圖面壓蓋檢查模塊

該模塊包括圖層內部和圖層之間的圖形壓蓋檢查。根據指定的待檢圖層,分別對圖層內部和圖層之間的所有圖形和注記要素進行相交運算,通過判斷相交關系來確定圖面要素之間是否存在壓蓋沖突。若存在相交關系,則讀取交集區域的四至坐標構建矩形框,作為壓蓋問題返回視圖進行顯示。為了提高檢查效率,縮小檢測范圍,通過調用CorelDRAW的空間搜索函數Page.SelectShapeFromRectangle(s.Left,s.TopY,s.RightX,s.BottomY,True),對所有待檢圖形和注記建立外接矩形范圍,只在該范圍內進行空間相交運算。

3.2道路懸掛檢查模塊

懸掛點是指線段的端點懸空,沒有和其他線段相連的點。由于懸掛節點位置不同,主要體現有多邊形不封閉、不及或過頭、節點不重合(不接頭)等幾種情況。無論是過頭還是不及都有一個共同的特征,也就是懸掛點處只有一條線連接。因此,懸掛點的檢查可通過計算線段的首尾端點在容差范圍內是否存在其他線段來實現,若不存在,則判定為懸掛點。

CorelDRAW地圖數據與GIS數據不同,其坐標為圖面坐標而非真實的空間坐標,因此,容差的選取應在圖面坐標系統下考慮,具體參數值需根據實際地圖精度要求來確定。

整個算法思路是,首先遍歷道路檢查層內的所有弧段線,獲取弧段首尾端點X、Y坐標值。分別以弧段的首尾端點作為圓心,根據給定的容差半徑定義容差圓范圍。然后依次在每個容差圓范圍內,通過IsOnShape(Double x,Double y,Double HotArea)函數查找并計算與容差圓相交的所有弧段的數量N。若N = 1,則判定構建該容差圓的端點為懸掛點,若N ≧ 2,則該端點不懸掛。最后以判定后的懸掛點作為圓心,繪制懸掛標示圓并通過視圖顯示,供人工判讀檢查結果。

3.3道路連接檢查模塊

等級道路在地圖中表示時,其符號的上下疊置關系是根據道路本身的等級次序所決定的,一般道路的等級越高,對應符號的疊放次序越靠上。對于雙線繪制的道路符號,其符號一般由道路中心線和道路邊線組成,為了正確表達道路交叉口的匯交情況,雙線的等級道路符號在疊放次序上將中心線和邊線分開,中心線按道路等級次序排放后,再往下依次疊放相應的道路邊線;對于單線道路符號,則一般疊放在所有雙線道路邊線的下一層平面,并分別按對應的等級順序進行疊放。根據上述的表示原則,確定道路連接檢測算法思路如下。

首先指定一個道路符號的正確疊置樣例層,該層是根據實際地圖的道路分級進行規范符號化和正確次序疊放的一個參考樣例。然后選取參與檢查的所有道路圖層,按圖層由上至下的排序,依次遍歷所有道路層中的每一個道路圖形,同參考樣例層逐個進行比對,通過與樣例層的每一個道路符號的輪廓線型、線寬、顏色模式、顏色值進行一一匹配,若所有條件都匹配,則返回一個序號K,K為匹配成功的樣例層內的符號層疊的順序號,順序號從1起算,按步長為1進行遞增,即1,2,3,……,n,n為樣例圖層中所有圖形的總數,順序號越大表示對應的符號疊放的順序越往后;若與樣例層所有符號比對完后都未匹配成功,則表示該道路圖形不符合參考樣例的符號化要求,即符號化不正確,則順序號賦值為0,并將該圖形提交至道路符號化錯誤檢查結果圖層。最后,針對順序號不等于0的道路符號再依次作兩兩排序檢查,兩兩檢查中發現上一個圖形順序號大于下一個圖形順序號的,則判定為道路疊置順序錯誤,將上一個圖形提交至道路連接錯誤檢查結果圖層。

4結語

地圖數據自動化質檢模塊的初步研究主要針對CorelDRAW軟件缺乏地圖質檢功能的問題,通過VBA語言設計并實現了基于CorelDRAW平臺的地圖制圖數據檢查程序,用戶可以在檢查程序中設置檢查圖層和容差,由程序讀取待檢圖層內的地圖要素進行自動化檢查分析,并通過地圖視窗返回圖面壓蓋、道路懸掛和道路連接錯誤結果。經測試,檢查一幅全開行政區劃地圖的時間由3小時縮短為10分鐘,極大地提高了檢查效率。

目前,研究過程中還發現一些問題,通往居民地的斷頭路會被視為懸掛問題返回,實際在做道路懸掛檢查時,還需要考慮與居民點的連通關系,道路端點處雖無其他道路連接但與居民點連通時,可不作為懸掛處理。因此,本文設計的質檢程序尚不能完全替代人工檢查,對于一些合理的圖面表達,還需要檢查人員進行人工判斷,這也是下一步程序需要進行完善的地方。

參考文獻:

[1] 吳澤權,陳葵莊,覃濤.基于VSTA的CorelDRAW二次開發在地圖制圖中的應用[J].測繪與空間地理信息,2020,43(10):216-219.

[2] 董洪霞,劉健,王海濤.基于CorelDraw VBA的制圖功能擴展模塊研究[J].測繪與空間地理信息,2017,40(10):188-189+192.

[3] 黃臻.基于CorelDRAW X5平臺下的中英文注記自動匹配的研究[J].經緯天地,2017(04):24-27.

[4] 戴相喜,施一軍,陳磊.CorelDRAW地圖制圖數據質量自動化檢查方法研究[J].城市勘測,2016(03):59-62.

猜你喜歡
圖層符號道路
堅持中國道路——方向決定道路,道路決定命運
道聽途說
讓閱讀更方便的小符號
為《飛舞的空竹龍》加動感
以假亂真窺探濕玻璃后的風景
與眾不同“跳出”畫面更個性
加減運算符號的由來
一次騎行帶來的感悟
草繩和奇怪的符號
中國符號,太美了!
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合