汪躍平,柳其志,魏智威,魏 嘉,劉 洋
(1.安徽省第四測繪院,安徽 合肥 230000;2.武漢大學 資源與環境科學學院,湖北 武漢 430079)
專題地圖設計是一個古老而又現代的問題[1]。關于地圖設計理論,國內外學者已進行了長期研究,并取得了豐碩成果;但是,在現代電子技術條件下,對于地圖設計與生產的技術研究,國內外學者仍在努力探索。基于計算機輔助軟件進行制圖的方法,國內外已有很多相關研究,瑞士的Lorenz教授研究小組長期從事基于Freehand軟件的地圖設計與生產研究工作,并建立了相應的地圖輔助設計平臺,可較好地提高山地制圖、地形圖生產的地圖設計效率和效果[2-4]。王家耀[1]院士工作團隊研究了基于Microstation軟件的軍事領域地圖設計與生產系統,大量使用了專家知識,可有效提高地圖生產效率,并廣泛應用于軍事地圖生產。此外,也有很多研究利用CorelDraw[5-7]、Adobe Illustrator[8]、MicroStation等矢量繪圖軟件結合ArcGIS、MapGIS等專業GIS軟件制作專題地圖[9-11],并利用軟件本身的制圖功能或二次開發技術研發相關制圖插件,輔助專題地圖的設計與成圖[12-19]。然而,這些研究主要是集中在一些小功能的改進或簡單應用上,沒有系統地按照地圖設計流程來研發地圖設計工具。專題地圖設計,要求地圖設計工作者具備豐富的設計經驗,若把地圖設計經驗集成為模板和樣本庫,就能輔助快速設計出滿足要求的樣圖,以提高地圖設計質量與效率。因此,本文基于CorelDraw和ArcGIS軟件研究了專題地圖輔助設計工具的設計與實現方法。
目前,地圖生產單位普遍使用CorelDraw進行專題地圖設計生產,但CorelDraw本身不具備GIS軟件一樣的專業制圖功能(如地圖符號庫、地圖色彩庫、圖廓整飾設計、地圖比例尺設定、圖例自動生成等),因此本文從地圖生產實際出發,研究了基于CorelDraw的專題地圖輔助設計工具。
專題制圖數據來源和格式多樣,如矢量數據、影像數據、文本數據、圖片數據和表格數據等。制圖軟件也有多種,不同軟件支持的數據格式也不同。因此,專題地圖輔助設計工具應具備數據標準格式轉換和多源數據融合功能。此外,地圖設計工作復雜,涉及大量的藝術性創作和細致的繪圖工作,需制圖人員具備一定的制圖經驗和藝術審美能力,特別是在符號選擇、色彩配置、版式設計等方面。地圖生產單位已積累較多的地圖設計成果,如常用地圖符號、地圖色彩配置方案、版式設計、地圖設計的主要參數等。這些成果是地圖設計人員的主要參考,若能統一組織和管理起來,就能在地圖設計過程中為地圖設計人員提供較好的借鑒。
因此,設計并研制的專題地圖輔助設計工具,一方面需要能夠管理和提供大量與地圖設計有關的樣本(符號庫、色彩庫、地圖內容配置樣本庫等)以及制圖經驗(地圖設計參數、制圖規則等),引導制圖人員進行地圖設計;另一方面還需提供多源數據的處理與融合功能,以提高地圖設計的效率和制圖的速度。
根據專題地圖生產的需要,專題地圖輔助設計工具需包括3個功能模塊:
1)多源數據預處理。①矢量數據處理:地圖投影選擇與轉換、數據選取、數據簡化、數據格式轉換等;②影像數據處理:影像配準、影像拼接、符號化等;③DEM處理:生成暈渲圖、符號化等;④文字圖表導入:Word、PDF、Excel、jpg、png、eps等導入。
2)地圖符號庫、地圖色彩庫、地圖內容配置樣本庫、花邊樣式庫以及各數據庫的管理等。地圖符號庫的管理與地圖要素符號化關聯,地圖色彩庫(行政區劃配色、分級統計圖配色、分區統計圖符號配色、色帶配色)的管理與地圖配色關聯,地圖內容配置樣本庫的管理與地圖內容設計關聯。
3)專題地圖設計與生成,主要包括地圖版式設計、普通地圖符號設計、地圖整飾設計、專題統計符號設計和地圖設計書框架的生成等。
專題地圖輔助設計工具的功能結構如圖1、2所示。

圖1 多源數據預處理

圖2 地圖設計輔助工具功能模塊
專題地圖輔助設計工具利用二次開發技術實現,使用的軟件平臺為ArcGIS 10.2和CorelDraw X3。其中,ArcGIS二次開發采用ArcEngine平臺,C#語言;CorelDraw X3二次開發則采用VBA和COM技術,VB語言。系統開發環境和使用工具如表1所示。
根據用戶的實際需求和數據規模,系統采用Access數據庫,使用ADO技術訪問數據庫;并通過ActiveX Automation技術使程序與Office、CorelDraw軟件對象進行鏈接,從而控制軟件實現相應功能。數據預處理模塊使用ArcEngine開發,地圖輔助設計與成圖使用CorelDraw的VBA技術實現。
專題地圖設計前需對地理底圖數據和專題要素進行預處理,包括地圖投影選擇與轉換、要素選取與簡化、圖層標注與注記生成、矢量數據轉換為CDR等,這些處理是多源數據融合的基礎。
1)地圖投影選擇與轉換。一方面,制圖的數據來源多樣,投影也往往不一致,需要將不同制圖數據轉換到一致的地圖投影中;另一方面不同用途、不同比例尺的地圖往往需要選擇不同的投影。不同投影間有確定的轉換方式,能在ArcGIS中快速進行,因而本文對目前生產單位常用的地圖投影進行了整理,建立了圖種與投影的對應關系,能輔助地圖投影選擇,實現地圖投影的快速轉換。
2)要素選取與簡化。點狀地圖要素的選取采用按密度選取和按屬性或等級選取的方法;線狀地圖要素按照長度或等級選取,采用Bend算法或D-P算法簡化;面狀地圖要素按照面積或等級選取。
3)圖層標注與注記生成。對需要生成注記的圖層進行標注后,再將標注轉化為對應的注記圖層。
4)矢量數據轉換為CDR。在分析制圖數據需求的基礎上,自動實現了ArcGIS矢量數據到CDR文件的無損轉換。采用C#語言進行編程,借助ArcGIS接口讀取矢量數據的圖形信息和屬性信息,然后使用CorelDraw的接口在CDR中寫入圖形和屬性信息,從而實現數據格式的無損轉換。其中,在CDR中使用對象數據來存儲屬性信息。

表1 系統開發環境
地圖符號庫使用Access數據庫(db_MapSymbol Libraries.mdb)來存儲和管理符號參數信息,由文件庫存放符號實體(CDR和圖片)。地圖符號庫包含點狀地圖符號、線狀地圖符號和面狀地圖符號,分別對應多 張參數表,其中典型符號示例如圖3所示。
點狀地圖符號屬性表包括符號名稱、要素類型、符號寬度、符號高度、定位點、旋轉角度,使用文件來存儲點狀地圖符號實體(.cdr)和點符號預覽圖(.bmp)。
線狀地圖符號基于圖元和程序塊方法繪制。由于一般的圖元分類較復雜,本文依據CorelDraw的自身特點,將圖元分為長線圖元、短線圖元和點狀圖元3種。在CorelDraw圖元分類的基礎上,對CorelDraw中的線狀地圖符號進行分類,依據其圖元構成可分為4類:①由一種或幾種長線圖元疊加組成,如高速公路等;②由在一條或幾條長線圖元上,按一定規則排列的短線圖元組成,如防洪堤等;③由在長線圖元上按一定規則排列的點狀圖元組成,如溝渠符號;④不能通過圖元組合的方式得到的符號,包括河流、橋梁、長城等特殊符號。線狀地圖符號參數也采用Access表的形式進行存儲,包括一張母表和多張子表。其中,母表用來存儲LineSymbol對象的屬性,每一種類型的圖元對應一張子表,每張子表的每個字段分別用來存儲圖元的編號和屬性。對于不能通過前幾種圖元組合得到的符號(橋梁、長城),采用程序塊進行繪制,存儲其在繪制過程中所有必要參數。母表的內容包括ID、符號名稱、符號類型、地物類型、圖元個數、組成圖元;長線圖元屬性表包括ID、圖元寬度、圖元線樣式、圖元顏色;短線圖元屬性表包括ID、圖元寬度、圖元長度、圖元間間隔、圖元方向、圖元偏移、圖元顏色;點狀圖元屬性表包括ID、圖元寬度、圖元高度、圖元間間隔;河流屬性表包括ID、橋梁線寬度、橋梁線顏色、橋梁長線長度、橋梁短線長度、橋梁短線角度、是否包含矩形塊、矩形塊顏色;長城屬性表包括ID、長城短線長度、長城短線寬度、長城短線間間隔、長城線顏色;在建高速公路屬性表包括ID、線劃個數、中心線寬度、道路寬度、邊線寬度、中心線顏色、道路顏色、邊線顏色、實部長度、虛部長度。
根據填充對象的不同,面狀地圖符號可分為顏色填充、點狀圖元填充和暈線填充,分別對應3張參數表來存儲填充對象的參數信息。面狀地圖符號的繪制采用程序塊方法實現。顏色填充屬性表包括ID、要素類型、面域顏色、輪廓線寬度、輪廓線顏色;點狀圖元填充屬性表包括ID、要素類型、圖元名稱、圖元寬度、圖元高度、角度、填充方式、垂直間隔、水平間隔;暈線填充屬性表包括ID、要素類型、角度、間隔、填充方式、線寬、線型、顏色1、顏色2。

圖3 符號庫中典型符號示例
地圖色彩庫使用Access數據庫來存儲,分為分級統計圖配色、分區統計圖符號配色、行政區劃配色和色帶配色4個類別,分別對應4張色彩參數表,存放色彩組合值。根據實際配色中使用的色彩數目,色彩參數表中最多可存儲10個色彩值。色彩配置樣本是從已公開出版的優秀地圖/地圖集或相關的論文中總結、抽象所得,保證了色彩模板對地圖設計的適用性和藝術性。色彩參數表包括ID、顏色數、顏色1、…、顏色10。
地圖內容配置樣本庫使用數據庫參數表來存儲地圖內容,建立特定比例尺下特定類別專題地圖內容(地物要素集合)的對應關系,同時存儲地物要素所對應的地圖符號信息。樣本庫的內容(地物要素及其符號)是日常制圖經驗的總結,將一些公認優秀的符號組合方案存儲下來,專門用來指導地圖的符號設計。制圖人員可參考樣本庫中已設計好的符號信息,也可將自己設計好的樣本庫保存起來。一個地圖內容配置樣本庫由一個Access數據庫文件組成,包括點狀地圖要素、線狀地圖要素、面狀地圖要素、地圖注記要素4張主表,以及控制線符號和面符號參數信息的多張從表。
地圖輔助設計與成圖是系統的核心功能,主要包括地圖版式設計、地圖符號系統設計、地圖整飾設計、專題統計符號生成、多源數據(表格、文本等)融合等功能。地圖輔助設計與成圖的主界面如圖4所示。

圖4 地圖輔助設計與成圖主界面
2.3.1 地圖版式設計
1)地圖數學基礎的還原。地理數據進入CorelDraw后丟失了數學基礎,如地圖投影和比例尺,因而需將進入CorelDraw的空間數據轉化到對應的比例尺下,再進行地圖圖面配置設計。在地理底圖數據預處理時,根據地圖的比例尺和實際地圖范圍,可計算并導出地理底圖(地圖投影坐標系下)對應比例尺下的地圖范圍,將導入CorelDraw的制圖數據縮放到對應的地圖范圍下,即可將制圖數據還原到原始比例尺下。
2)確定最大制圖范圍、內圖廓尺寸以及比例尺。考慮到印刷的需要,需預留出紙張空白空間,以全開紙張為例,其計算過程為選定紙張,確定最大制圖范圍后,可根據導入制圖數據的比例尺計算地圖在當前確定紙張和制圖范圍下的比例尺,并將制圖數據進行縮放,使之處于最大制圖范圍內,并自動生成內圖廓。根據實際制圖經驗,地圖范圍通過主區界線向四周擴大10 mm,即為內圖廓范圍。圖廓設計界面如圖5所示。

圖5 圖廓設計界面
3)地圖圖面配置設計,即充分利用地圖幅面,針對圖名、圖廓、圖例、附圖、附表、比例尺以及各種文字的版面設計。利用視覺平衡模型,以地圖生產中常用的地圖圖面配置方案為示例庫,實現地圖圖面的自動配置,為地圖設計人員提供較合理的設計方案。在地圖圖面要素配置過程中,需考慮紙張大小和地圖比例尺,首先用矩形框代表圖名、圖例、比例尺等地圖圖面要素的大小和位置;然后結合地圖圖面要素配置規則,計算出不同地圖圖面要素的尺寸大小、位置,并使地圖圖面協調。另外,利用視覺平衡評價模型來評價生成的版式是否達到了視覺平衡效果,并通過對矩形框的大小和位置進行微調使圖面盡量達到視覺平衡。地圖圖面要素與地圖主圖之間的沖突需在地圖自動設計過程中進行探測,若地圖圖面要素與地圖主圖存在交叉沖突,則自動搜尋合適位置,為用戶提供更規范、美觀的地圖圖面要素配置模板。地圖版式設計界面如圖6所示。

圖6 地圖版式設計界面
2.3.2 地圖符號系統設計與地圖要素符號化
首先對地圖圖層進行標準化命名,再選擇地圖類別對應的地圖內容配置樣本庫,將其中的地物要素圖層與當前地圖圖層做匹配,然后對地圖進行快速符號化,最后對圖層進行排序,控制圖層之間的壓蓋關系。
2.3.3 地圖整飾設計
地圖整飾設計主要涉及比例尺、圖例、地圖色帶和花邊等的生成。根據用戶選擇的地圖內容模板設置圖例的樣式,使用圖例生成程序即可自動生成圖例;比例尺和色帶可使用相應程序自動生成;對于花邊,系統建立了常用的花邊樣式庫,可管理花邊并自動生成花邊。
2.3.4 專題統計符號設計與生成
專題統計符號主要包括生成統計圖表、分區統計圖和分級統計圖。對于專題統計圖表,系統使用TeeChart控件來完成多種圖表的繪制,主要包括常用的柱形圖、扇形圖、點狀圖等,并能通過屬性編輯改變相應的表達形式(如是否3D樣式、圖表背景顏色、圖的旋轉角度等)。對于分級統計圖,系統提供了數據自動分級模型,并能使用分級色彩模板對已分級的行政區劃進行著色。對于分區統計圖,可自動實現常用的統計圖表繪制。統計數據支持Excel格式和Access數據庫格式。
2.3.5 多源數據融合
除了矢量數據、影像數據和DEM外,專題地圖設計中還包括圖像數據、統計數據、表格數據、文檔數據等,系統可將txt、Word、PDF三類常用格式的文本文件和jpg、png、tif等多種圖片格式導入CDR中,同時提供Excel格式數據的無損導入。其實現方式是將Excel導出為PDF,再導入到CDR中。
2.3.6 地圖設計書框架生成
在地圖設計過程中將產生地圖設計的相關參數,如版式設計參數、地圖要素、地圖配色、比例尺等。首先將地圖設計參數導出為txt文本或圖片,再使用ActiveX Automation技術建立與Word程序的鏈接,自動生成一個Word文檔,即地圖設計書框架,為地圖設計人員提供方便。
以安徽省部分區域數據為樣例,按照專題地圖的設計流程,利用本文所設計的地圖輔助設計工具中已集成的符號庫、色彩庫、地圖內容配置樣本庫、花邊樣式庫等素材,借助輔助設計工具中已實現的制圖功能,實現了相應圖種樣圖的快速制作,結果樣圖見圖7。

圖7 樣圖示例
在制圖過程中,從地理底圖數據的投影選擇、要素簡化、ArcGIS矢量數據到CorelDraw格式無損轉換大部分制圖工作都可通過輔助設計工具來完成;在CorelDraw中利用制圖插件可進行地圖圖廓版式設計、地圖符號設計與符號化、底圖配色、地圖整飾設計(圖例、比例尺、色帶和花邊的生成)、專題統計符號的繪制。當然,少部分細節目前仍需要人工參與處理,如少部分注記沖突處理、圖例局部調整等。總體看來,本文研究的基于CorelDraw的專題地圖輔助設計工具能夠幫助制圖人員快速制圖,并有效提高專題地圖的設計效率。
本文從需求分析、技術方案、功能設計與實現等方面研究了基于CorelDraw的專題地圖輔助設計工具的實現方法,并根據設計思路實現了系統的功能,已應用于實際專題地圖的生產。從生產單位應用情況來看,該工具提高了制圖效率,取得較好的實驗效果,對于專題地圖自動設計具有一定的指導和借鑒意義。
[1] 王家耀.信息化時代的地圖學[J].測繪工程,2000,9(2):1-5
[2] Kriz K, Cartwright W, Hurni L. Mapping Different Geographies[M]. Springer Science and Business Media,2010
[3] William C, Gartner G, Lehn A. Cartography and Art[M].Springer Science and Business Media,2009
[4] ZHOU J B, LI X H. GeoPlot: an Excel VBA Program for Geochemical Data Plotting[J]. Computers and Geosciences,2006,32(4):554-560
[5] 孟祥飛,王衛.ArcGIS數據與CorelDraw數據的轉換方法研究[J].測繪科學,2009,34(3):181-182
[6] 王雷,趙冰雪.ArcGIS與CorelDraw數據格式轉換實現[J].宿州學院學報,2016,31(10):107-109
[7] 喬俊軍,房雪玲,姜戰底.ArcGIS到CorelDraw的數據轉換及圖層異常改正[J].測繪與空間地理信息,2013(1):27-29
[8] 朱新銘,李少梅,彭湃.基于Illustrator的Shapefile空間數據讀取方法研究[J].測繪與空間地理信息,2016(2):100-103
[9] 馬曉東,王海芹,王苑. MapGIS數據與CorelDraw數據轉換技巧[J].測繪技術裝備,2003,5(2):45
[10] 廖義杰,余潔,劉繼琳.基于出版的地圖數據向GIS空間數據轉換的方法探討[J].測繪通報,2004(3):44-46
[11] 喬俊軍,房雪玲,張海文.基于CorelDraw的制圖要素符號化研究[J].測繪與空間地理信息,2013(8):30-33
[12] 吳小芳,杜清運,徐智勇,等.復雜線狀符號的設計及優化算法研究[J].武漢大學學報(信息科學版),2006(7):632-635
[13] 王偉,張波,殷贛華,等.基于COM技術的地圖符號庫結構設計與實現[J].武漢大學學報(信息科學版),2002(3):296-300[14] 車森,孫群,劉海硯.參數控制的地圖符號編輯器設計[J].武漢大學學報(信息科學版),2013(11):1 326-1 329
[15] 田祖斌,龍思宇,王剛剛,等.基于Illustrator的圖集符號庫設計與實現[J].山東理工大學學報 (自然科學版),2012(3):81-83
[16] 李論,張志鵬,陳慎.基于CorelDraw X6的專題地圖統計圖表自動化實現[J].測繪工程,2014,23(1):65-69
[17] 何曼麗.應用AI軟件輔助ArcGIS的城市地質調查成果專題制圖[J].上海國土資源,2014,35(2):95-97
[18] 秦志偉. MapGIS在地質制圖中的應用研究[J].測繪與空間地理信息,2014(4):104-106
[19] 王磊,續玉萍,嚴薇.基于Microstation的專題地圖編輯與出版[J].測繪與空間地理信息,2013(2):176-178