張 雷,黃亞萍,楊 覓
(江蘇省基礎地理信息中心,江蘇 南京 210013)
CorelDraw平臺下專題地圖實時展現的研究
張 雷,黃亞萍,楊 覓
(江蘇省基礎地理信息中心,江蘇 南京 210013)
由于專題地圖集制作周期較長,最初設計時用到的數據一般不是最終數據,因此需要出版前更換為最終數據,這為地圖制作帶來了繁重的工作量。本文通過分析專題地圖中統計數據與圖形之間的關系,利用VBA對CorelDraw進行二次開發,建立圖形和外部數據庫的關聯,實現了專題地圖的自動更新,有效減少了專題地圖制作過程中多次更新數據所帶來的繁瑣的人工勞動。
CorelDraw;VBA;專題地圖
專題地圖是按照地圖主題的要求,突出而完善地表示與主題相關的一種或幾種要素,從而使地圖成為內容專題化、用途專門化的地圖。
準確實時的數據是編制專題地圖的前提條件。專題圖均由定量數據根據一定的規則生成,用于清晰地表達現象、觀點、趨勢等。
統計數據具有實效性。專題地圖制作周期較長,在開始設計制作時使用的最新數據往往不是最終數據,因此在專題地圖制作完成后需要替換為最新數據,其工作量基本相當于利用新數據重新制作。本文主要解決多次利用較新數據更新專題地圖內容的問題。
CorelDraw軟件是加拿大Corel公司開發的一款通用的基于矢量的圖形制作軟件,在平面設計、地圖制圖、服裝設計等行業中應用廣泛。CorelDraw支持Visual Basic語言的二次開發功能,用戶可以在一定程度上通過VBA操作CorelDraw的對象,通過程序開發實現個性化的功能。
CorelDraw VBA是VB的子集,是一種標準宏語言,是面向對象的高度集成的開發環境,在 Corel-Draw內部運行。
CorelDraw VBA有特殊的數據類型,可以實現計算機制圖中常用的基本函數,如畫線、畫圓、畫面、面域填充和文字標注等基本命令。對象分為以下幾類:應用程序(Application)類、文檔(Document)類、組織結構(Organizing)類、圖元(Entity)類。Corel-Draw中對象模型的結構如圖1所示。

圖1 CorelDraw對象模型
專題地圖的原始數據主要由專業部門或統計部門提供,大多為表格數據。基礎地圖數據一般為圖形數據,包括點狀要素、線狀要素和面狀要素。下面就如何基于統計數據更新地圖基本要素予以說明。
1.專題地圖要素更新方法
CorelDraw本身不具備數據庫功能,不能像GIS軟件一樣通過改變對象屬性來修改對象的可視化效果。為了達到GIS軟件操作的效果,只能通過VBA二次開發實現圖形對象與外部數據的關聯。當數據改變時,通過執行命令就可以方便地實現圖形的顏色、大小、形狀等屬性的修改,從而達到快速更新專題地圖內容的目的。下面以人口專題為例說明專題地圖內容更新方法。
(1)基礎地圖處理
基礎地圖是專題圖的基礎,對專題圖集起到至關重要的作用。每幅專題圖根據不同數據對地圖要素的色彩、大小、形狀進行變化而成。如分級統計圖表法根據顏色分級,在建立基礎地圖時通過對象數據管理器為面狀對象添加屬性,也可以在導入其他格式的基礎地圖數據時使圖形對象與外部數據關聯。為基礎地圖要素添加屬性如圖2所示。

圖2 為圖形添加屬性
(2)數據庫的建立
通過對象數據管理器,可以為點、線、面添加屬性,如名稱、級別等,使之對應于數據庫中相應的字段。
根據表達需要,專題地圖屬性數據描述精度分為定性數據和定量數據,本文主要針對定量數據,選用Excel數據庫模型。
通過分析數據源,確認圖形與數據庫的關聯字段,根據圖形表現方式確定數據結構,包括字段數量和字段類型。通過計算、取舍、輸入記錄來建立與圖形對應的數據庫。同一數據庫可關聯多幅地圖。數據庫建立見表1。
(3)基礎地圖圖形與數據庫的關聯
專題圖的表示方法多種多樣,不可能采用同一個數學模型來滿足所有專題圖需要,因此,需要針對每種方法設計對應的數學模型。本文介紹的方法只可作為建立數學模型的借鑒,不可直接拿來使用,除非與本文專題圖實例具有相同的需求。

表1 數據庫建立
表1數據庫中圖形建立了與色號的對應關系。包含色號字段的顏色表是實際需要的顏色值,如圖3所示。通過表1、圖3即可實現圖形與填充顏色的關聯,通過運行VBA程序,將自動更換圖形的填充顏色。

圖3 顏色對應表
(4)圖形更新
由上可知,當某些區域的人口數據發生了變化,通過程序將自動更新表1中“色號”字段的值;再通過VBA程序的運行調用修改后的數據,獲得正確的顏色值等信息,從而改變圖形的顏色、形狀、大小等。整體流程如圖4所示。

圖4 專題地圖更新流程
(5)地圖中點狀要素符號的更新
專題圖中表示數量關系一般采用圓形、柱狀圖、餅狀圖等大小、形狀或顏色。下面以圓形為例介紹一種點狀要素符號的更新方法。該類符號首先要確定最大和最小半徑,然后按照比率計算不同要素對應的大小。通過數據庫獲得對應數據,利用VBA功能繪制大小不同的圓形符號,如圖5所示。

圖5 點狀符號更新
圓形符號更新的VBA程序的主要語句如下:

2.統計圖表更新方法
統計圖表也是專題地圖集編制中應用較多的內容之一。制作統計圖表的軟件很多,如 Illustrator、ArcGIS、Excel等。相比來說 Excel表現形式最豐富,使用方便;但不足之處是弧線轉入 CorelDraw后,鋸齒現象比較明顯,而且顏色模式為RGB色彩模式,需要進一步加工處理,如圖6所示。

圖6 Excel生成圖表
為了解決這個問題,筆者在CorelDraw中使用VBA程序制作。下面以立體餅圖為例介紹VBA程序開發過程。
(1)數據規范化
為了VBA對數據的正確調用,必須對數據進行規范化處理,主要解決處理數據類型和數據對應位置(哪一列),如圖7所示。

圖7 數據整理
(2)圖表生成
根據規范化數據,利用VBA程序代碼即可實現餅狀圖的生成,主要源代碼如下:
功能1:通過設置半徑,自動繪制圓形,并轉換成圓形曲線:

功能2:按照各行數據所占比例,計算對應圓弧上的弧段長度,并根據長度依次切斷圓形曲線,得到一組與數據對應的弧段組:

功能3:遍歷弧段組,將弧段首結點連接圓心,閉合弧段:


代碼中pieShape為最終生成的餅狀圖。
圖表生成功能運行界面如圖8所示。

圖8 圖表生成功能運行界面
在專題地圖集編制工作中,合作單位或相關部門一般已有基礎性圖形數據,主要包括GIS數據和圖形數據。CorelDraw能夠兼容 DXF、EPS、CMX、AI、JPG、TIFF等多種數據格式,為數據轉換提供了可行性。
常見的GIS數據有MapGIS和ArcGIS數據等,其他GIS數據都可以轉換為ArcGIS數據。如果要在CorelDraw中使用GIS數據,可采用兩種方式轉換:一是通過開發程序直接讀取GIS數據,然后按CorelDraw能夠讀取的格式導出,CorelDraw即可以直接導入;二是把GIS數據轉換為自定義文件格式,由CorelDraw的VBA程序讀入自定義格式。
CorelDraw軟件是地圖制圖領域使用較廣的軟件,其較強的圖形處理功能和完美的特效是其他軟件難以比擬的,但是其在GIS功能上的先天不足也給地圖制圖帶來了較多的障礙,通過VBA二次開發在一定程度上輔助解決了部分快速制圖的問題。本文所述方法在《江蘇省地圖集》專題地圖的編制中發揮了很大作用,避免了數據更新的重復勞動,原來需要幾個月才能完成的工作,現在只需兩三天,且大大減少了人為錯誤,不僅提高了生產效率,而且為工作的開展贏得了寶貴的時間。
[1] 黃仁濤,龐小平,馬晨燕.專題地圖編制[M].武漢:武漢大學出版社,2003:48-49.
[2] 麥照秋,韓雪華.GIS數據用于CorelDraw地圖制圖方法的研究[J].測繪通報,2008(2):62-64.
[3] 曾克明.CorelDraw軟件的二次開發在地圖制圖中的應用與實例[J].測繪通報,2010(8):60-61,73.
[4] 高小明,湯青慧,溫俊麗.CorelDraw中基于VBA的二次開發[J].測繪與空間地理信息,2006,29(6):54-56.
[5] 顏振宇.CorelDraw X5中基于VBA實現線漸變的技術研究[J].測繪與空間地理信息,2012,35(11):202-204.
[6] 張榮茜,熊亮.CorelDraw12環境下VBA二次開發實現圖形變換[J].電腦編程技巧與維護,2008(6):65-68.
[7] 鐘煒.利用CorelDraw VBA開發宏程序繪制地圖[J].江西測繪,2007,69(3):4-6.
[8] 王瑞璋.基于CorelDraw的二次開發技術在地圖制圖中的應用[J].測繪與空間地理信息,2013,36(3):173-175.
[9] 楊穗,易捷.應用VB或VBA對CorelDraw進行二次開發[J].電腦學習,2004,2(1):31-33.
[10] 張青梅,黃玉英,宋華明.基于CorelDraw的地圖編繪技術研究[J].科技資訊,2012(20):46-48.
Real-time Presentation Research of Thematic Maps Based on CorelDraw
ZHANG Lei,HUANG Yaping,YANG Mi
P285
B
0494-0911(2014)12-0118-04
張雷,黃亞萍,楊覓.CorelDraw平臺下專題地圖實時展現的研究[J].測繪通報,2014(12):118-121.
10.13474/j.cnki.11-2246. 2014.0414
2014-04-28;
2014-06-30
江蘇省測繪科研資助項目(JSCHKY201320)
張 雷(1973—),男,陜西富平人,高級工程師,主要從事地圖編制工作。