戴相喜,施一軍,陳磊
(南京市測繪勘察研究院有限公司,江蘇 南京 210019)
?
CorelDRAW地圖制圖數據質量自動化檢查方法研究
戴相喜*,施一軍,陳磊
(南京市測繪勘察研究院有限公司,江蘇 南京210019)
摘要:面向CorelDRAW地圖制圖數據檢查需求,在規范化地圖制圖基礎上,設計地圖數據檢查模板,用戶在該模板中設置各圖層數據制圖表達參數,由程序自動讀取該參數對地圖制圖數據批量進行檢查,從而達到對制圖數據標準化檢查的目的,可以很大程度上減少制圖數據檢查工作量,提高檢查效率和準確性。
關鍵詞:CorelDRAW;質檢;模板;二次開發
1引言
目前國內地圖制圖領域較常見的軟件有CorelDRAW、ArcGIS、MapInfo等。ArcGIS和MapInfo是傳統的GIS軟件,擅長空間數據的查詢與分析,制圖功能是其在后續工作中不斷增加完善的,不是主推功能。CorelDRAW是專為制圖設計,以其豐富的制圖功能、精細的制圖效果占領了大部分的制圖市場,是目前國內使用最廣泛的專業矢量圖形設計軟件[1,2]。
因地圖制圖要素種類、數量眾多,制圖人員在制作制圖數據過程中難免由于疏忽、誤操作等原因將要素分錯層、設置錯顏色等。傳統的地圖制圖數據質量檢查通常由人工進行,由檢查人員根據地圖設計方案中預定的分層、顏色、線寬等,對制圖成果數據進行仔細檢查。這些錯誤若全由人工來檢查,一方面由于很多錯誤不能十分直觀地發現,不能完全確定通過檢查能否將此類錯誤悉數查出;另一方面檢查工作量很大,會花費不小的人力成本,同時也會影響項目周期。
鑒于上述原因,本文設計一套軟件對地圖制圖數據進行標準化檢查,查看其是否按照制圖方案的分層、色彩等進行操作,對這部分工作自動化檢查,解放檢查人員的勞動力,讓他們更加專注于地圖自身圖面表達、效果等方面,力求做出更優秀的地圖。
經資料查閱,目前尚沒有見到基于CorelDRAW的地圖制圖數據質檢程序方面科技論文或文獻發表。
2設計思路
本文設計的思路是首先由地圖設計人員根據地圖內容對地圖的分層、顏色、線寬、字體等進行設計,設計時注意一般不同幾何類型放置在不同圖層,如有填充的面和普通的線不放在一個圖層,因為在CorelDRAW中這些類型不是嚴格意義上的幾何類型,只是通過填充、描邊等來控制其表現形式,很難通過幾何類型區分,通過圖層細分可以減少程序判斷的難度,表1為推薦的可以在同一圖層出現的常見類型。
在此基礎上設計數據檢查的模板,模板是基于微軟Access數據庫,其中定義了每個圖層的制圖表達參數,如填充顏色、描邊顏色、色塊顏色、字體大小等。
基于檢查模板,設計了幾個主要的檢查功能如下:
(1)層名規范檢查
該檢查項檢查數據中圖層的層名是否都是模板中層名字段規定的名稱。由于模板中所有參數設置均與層名相關聯,若被檢查數據中層名不正確,即無法使用正確的參數對該層進行檢查,因此層名檢查應該是首先要被檢查的內容。
(2)填充顏色檢查
該檢查項檢查幾何圖形和文字的填充顏色是否符合模板中填充顏色字段要求。在CorelDRAW中,文字不同于其他常見軟件,如AutoCAD、ArcGIS等,這里的文字如同幾何圖形一樣處理,有描邊和填充,因此將文字和幾何圖形放在一起做填充顏色檢查。如果模板中填充顏色字段設置了填充顏色值,則需檢查該層幾何圖形和文字填充顏色是否符合要求,如果沒有設置填充顏色值,則該圖層內要素不允許有填充存在。
(3)描邊顏色檢查
該檢查項檢查幾何圖形和文字的描邊顏色是否符合模板中描邊顏色字段要求。如果模板中描邊顏色字段設置了值,則需檢查該層幾何圖形和文字的描邊是否符合要求,如果沒有設置值,則該層內幾何圖形和文字不允許有描邊存在。
(4)描邊粗細檢查
該檢查項檢查幾何圖形和文字的描邊粗細和后臺描邊是否符合模板設置的描邊粗細及后臺描邊要求。
(5)色塊檢查
色塊是指為突出顯示某些文字而專門在其下放置的圖形。如果模板中色塊顏色設置了值,則一方面檢查該層內的文字注記下是否有色塊存在,另一方面檢查該色塊的顏色、描邊是否與模板中色塊顏色、色塊描邊顏色、色塊描邊粗細中所設置值符合。
(6)注記字體檢查
該檢查項檢查文字注記所使用的字體是否符合模板中字體字段要求。如果模板中該層沒有設置字體,則該層中不應有文字注記出現,如果設置了字體,則檢查注記的字體是否與設置要求一致。
(7)注記大小檢查
該檢查項檢查文字注記的字體大小是否符合模板中字大字段要求。
(8)線型檢查
該檢查項檢查線類型幾何圖形的線型是否符合模板中線型字段要求。如果模板中該圖層未設置線型值,則該圖層中圖形不應有線型,若設置了值,則應符合所設值要求。
(9)符號圖層一致性檢查
該檢查項檢查符號是否放錯圖層。在模板的符號列表層中設置該圖層允許放置的符號名稱,圖層中只允許放置列表中列出的符號。
3關鍵技術及程序實現
3.1關鍵技術
CorelDRAW軟件二次開發目前可查閱到的資料較少,這里將二次開發過程中關鍵知識點和注意事項列出。
(1)尺寸換算
檢查描邊粗細、字高時需要獲取對應對象的尺寸數值,CorelDRAW程序在互操作界面上提供了字體的字高、圖形的描邊粗細等數值供用戶設置,這些數值的單位是我們常用的磅、米、毫米等,但是在程序開發時不能直接使用這些值來設置相應的參數,因為CorelDRAW維護了一套內部尺寸標準,各互操作界面上的尺寸大小均需轉換為內部尺寸標準方可使用。開發人員可以使用Document.ToUnits(double Value,cdrUnit FromUnit)函數來對界面上數值進行轉換。
(2)注記參數獲取
注記檢查時需獲取注記的字體、字高等參數,獲取參數時需注意CorelDRAW中多段文字,多段文字每段均可使用不同的字體、字高參數,而如果檢查時只檢查了第一段的參數,未檢查后續段落參數,則可能檢查不完全,開發人員可以使用Shape.Text.Story.Paragraphs.All屬性來獲取所有段落的參數。
(3)空間搜索
CorelDRAW作為矢量制圖軟件,未能像GIS軟件一樣提供靈活、強大的空間搜索函數供開發人員調用,但是也提供了一些簡單的空間搜索函數,這里將其列出,開發檢查程序時如需做空間判斷,如搜索注記是否有色塊襯底,可使用這些函數。
Page.SelectShapesAtPoint(double x,double y,bool SelectUnfilled,double HotArea=-1);
Page.SelectShapesFromRectangle(double x1,double y1,double x2,double y2,bool Touch);
這兩個函數分別提供了點選和框選的功能,開發人員開發時可以合理加以利用。
(4)線型獲取
CorelDRAW中可以使用編輯線條樣式工具編輯制作線型,一般是使用黑白相間的樣式,黑白相間樣式可以單組重復或多組重復。開發人員可以通過Shape.Outline.Style.DashLength[i]和Shape.Outline.Style.GapLength[i]兩個屬性來分別獲取第i組黑、白顏色的長度。3.2程序實現
(1)開發語言選擇
本程序選用C#語言,采用COM互操作的方式添加對CorelDRAW的引用,從而實現對其訪問和控制。
(2)模板設計
基于以上設計思路,設計Access數據庫模板屬性檢查表結構,如圖1所示,其中定義了層名、填充顏色、描邊顏色、描邊粗細、是否后臺描邊、色塊顏色、色塊描邊顏色、色塊描邊粗細、字體、是否粗體、符號列表、線型等字段,用來填寫各個圖層中圖形表達的參數。

圖1圖層參數設置
(3)檢查流程
檢查模板配置好之后即可進行制圖數據的程序自動檢查了,檢查的流程如圖2所示:
(4)程序界面
檢查程序界面圖3所示,檢查功能可批量對多文件執行。
(5)檢查結果驗證
檢查程序主要工作是按圖層和幾何類型對數據進行遍歷,將遍歷出來的要素與模板設置參數進行對比,所需進行的邏輯判斷較簡單,其耗時主要集中在數據遍歷階段。
此處以一幅1∶8 000比例尺的制圖數據為例(如圖4所示),圖中共有注記435個,點對象192個,線對象 5 826個,進行描邊粗細、描邊顏色、注記字體、注記大小4項檢查,分別耗時: 249 min、 322 min、 141 min、 80 min,共耗時 772 min,檢查結果見圖5,圖中所示錯誤為城市次干道上層中線描邊粗細應該為 3.2 mm,而圖中該線描邊粗細為 2 mm,故報錯。
4結語
本文設計并實現了一種基于數據庫模板的可定制的地圖制圖數據檢查程序,用戶可以在數據庫模板中設置各個圖層的制圖參數,由程序自動讀取該參數對圖層中要素進行檢查,具有很大的靈活性。程序主要實現了對制圖數據的層名、填充顏色、描邊顏色、描邊粗細、字體名稱、字體大小等制圖表達參數的檢查,極大提高數據檢查的效率和準確性。本成果成功應用于《中國城市地圖集系列之南京城市地圖集》中,取得了良好的效果。本文設計的程序不能完全代替人工檢查,如圖面內容合理性等,這部分還需制圖檢查人員人工檢查,另外本程序對字體檢查部分尚有不足,如缺少對文字拉伸、壓縮方面的檢查,需進一步加以研究完善。
參考文獻
[1]王瑞璋. 基于CorelDRAW的二次開發技術在地圖制圖中的應用[J]. 測繪與空間地理信息,2013,36(3):173~175.
[2]高小明,湯青慧,溫俊麗. CorelDRAW中基于VBA的二次開發[J]. 測繪與空間地理信息,2006,29(6):54~56.
[3]張天純. 使用CorelDRAW圖形軟件編制專題地圖集[J]. 城市勘測,2003(1):37~41.
[4]王昌翰,徐占華. 圖形軟件在重慶市地圖集中的應用[J]. 城市勘測,2008(2): 102~104.
[5]梁建國,徐占華,顏宇. CorelDRAW VBA在地圖制圖中的應用[J]. 測繪科學,2009,34(10):218~219.
Research on Automatic Check Method for CorelDRAW Mapping Data
Dai Xiangxi,Shi Yijun,Chen Lei
(Nanjing Institute of Surveying,Mapping & Geotechnical Investigation,Co.,Ltd,Nanjing 210019,China)
Key words:CorelDRAW;check;template;secondary development
Abstract:This paper designed a Mapping data check template based on Standardization cartography method oriented to the demand of checking for CorelDraw Mapping data,user can set mapping parameters for each layer in this template,then the check program read parameters for the using of batch checking mapping data automatically,thus can achieve the goal of Checking for Mapping data Standardization,reduce the workload of checking mapping data to a great extent,improve Efficiency and Accuracy of checking.
文章編號:1672-8262(2016)03-59-04
中圖分類號:P208.1
文獻標識碼:B
*收稿日期:2016—03—09
作者簡介:戴相喜(1984—),男,碩士,工程師,主要從事地圖與GIS方面的研究工作。
基金項目:四川省地理國情監測工程技術研究中心資助項目(GC201502)