汪躍平,柳其志,魏智威,魏 嘉,劉 洋
(1.安徽省第四測繪院,安徽 合肥 230000;2.武漢大學 資源與環(huán)境科學學院,湖北 武漢 430079)
專題地圖設計是一個古老而又現(xiàn)代的問題[1]。關于地圖設計理論,國內(nèi)外學者已進行了長期研究,并取得了豐碩成果;但是,在現(xiàn)代電子技術條件下,對于地圖設計與生產(chǎn)的技術研究,國內(nèi)外學者仍在努力探索。基于計算機輔助軟件進行制圖的方法,國內(nèi)外已有很多相關研究,瑞士的Lorenz教授研究小組長期從事基于Freehand軟件的地圖設計與生產(chǎn)研究工作,并建立了相應的地圖輔助設計平臺,可較好地提高山地制圖、地形圖生產(chǎn)的地圖設計效率和效果[2-4]。王家耀[1]院士工作團隊研究了基于Microstation軟件的軍事領域地圖設計與生產(chǎn)系統(tǒng),大量使用了專家知識,可有效提高地圖生產(chǎn)效率,并廣泛應用于軍事地圖生產(chǎn)。此外,也有很多研究利用CorelDraw[5-7]、Adobe Illustrator[8]、MicroStation等矢量繪圖軟件結合ArcGIS、MapGIS等專業(yè)GIS軟件制作專題地圖[9-11],并利用軟件本身的制圖功能或二次開發(fā)技術研發(fā)相關制圖插件,輔助專題地圖的設計與成圖[12-19]。然而,這些研究主要是集中在一些小功能的改進或簡單應用上,沒有系統(tǒng)地按照地圖設計流程來研發(fā)地圖設計工具。專題地圖設計,要求地圖設計工作者具備豐富的設計經(jīng)驗,若把地圖設計經(jīng)驗集成為模板和樣本庫,就能輔助快速設計出滿足要求的樣圖,以提高地圖設計質(zhì)量與效率。因此,本文基于CorelDraw和ArcGIS軟件研究了專題地圖輔助設計工具的設計與實現(xiàn)方法。
目前,地圖生產(chǎn)單位普遍使用CorelDraw進行專題地圖設計生產(chǎn),但CorelDraw本身不具備GIS軟件一樣的專業(yè)制圖功能(如地圖符號庫、地圖色彩庫、圖廓整飾設計、地圖比例尺設定、圖例自動生成等),因此本文從地圖生產(chǎn)實際出發(fā),研究了基于CorelDraw的專題地圖輔助設計工具。
專題制圖數(shù)據(jù)來源和格式多樣,如矢量數(shù)據(jù)、影像數(shù)據(jù)、文本數(shù)據(jù)、圖片數(shù)據(jù)和表格數(shù)據(jù)等。制圖軟件也有多種,不同軟件支持的數(shù)據(jù)格式也不同。因此,專題地圖輔助設計工具應具備數(shù)據(jù)標準格式轉換和多源數(shù)據(jù)融合功能。此外,地圖設計工作復雜,涉及大量的藝術性創(chuàng)作和細致的繪圖工作,需制圖人員具備一定的制圖經(jīng)驗和藝術審美能力,特別是在符號選擇、色彩配置、版式設計等方面。地圖生產(chǎn)單位已積累較多的地圖設計成果,如常用地圖符號、地圖色彩配置方案、版式設計、地圖設計的主要參數(shù)等。這些成果是地圖設計人員的主要參考,若能統(tǒng)一組織和管理起來,就能在地圖設計過程中為地圖設計人員提供較好的借鑒。
因此,設計并研制的專題地圖輔助設計工具,一方面需要能夠管理和提供大量與地圖設計有關的樣本(符號庫、色彩庫、地圖內(nèi)容配置樣本庫等)以及制圖經(jīng)驗(地圖設計參數(shù)、制圖規(guī)則等),引導制圖人員進行地圖設計;另一方面還需提供多源數(shù)據(jù)的處理與融合功能,以提高地圖設計的效率和制圖的速度。
根據(jù)專題地圖生產(chǎn)的需要,專題地圖輔助設計工具需包括3個功能模塊:
1)多源數(shù)據(jù)預處理。①矢量數(shù)據(jù)處理:地圖投影選擇與轉換、數(shù)據(jù)選取、數(shù)據(jù)簡化、數(shù)據(jù)格式轉換等;②影像數(shù)據(jù)處理:影像配準、影像拼接、符號化等;③DEM處理:生成暈渲圖、符號化等;④文字圖表導入:Word、PDF、Excel、jpg、png、eps等導入。
2)地圖符號庫、地圖色彩庫、地圖內(nèi)容配置樣本庫、花邊樣式庫以及各數(shù)據(jù)庫的管理等。地圖符號庫的管理與地圖要素符號化關聯(lián),地圖色彩庫(行政區(qū)劃配色、分級統(tǒng)計圖配色、分區(qū)統(tǒng)計圖符號配色、色帶配色)的管理與地圖配色關聯(lián),地圖內(nèi)容配置樣本庫的管理與地圖內(nèi)容設計關聯(lián)。
3)專題地圖設計與生成,主要包括地圖版式設計、普通地圖符號設計、地圖整飾設計、專題統(tǒng)計符號設計和地圖設計書框架的生成等。
專題地圖輔助設計工具的功能結構如圖1、2所示。
圖1 多源數(shù)據(jù)預處理
圖2 地圖設計輔助工具功能模塊
專題地圖輔助設計工具利用二次開發(fā)技術實現(xiàn),使用的軟件平臺為ArcGIS 10.2和CorelDraw X3。其中,ArcGIS二次開發(fā)采用ArcEngine平臺,C#語言;CorelDraw X3二次開發(fā)則采用VBA和COM技術,VB語言。系統(tǒng)開發(fā)環(huán)境和使用工具如表1所示。
根據(jù)用戶的實際需求和數(shù)據(jù)規(guī)模,系統(tǒng)采用Access數(shù)據(jù)庫,使用ADO技術訪問數(shù)據(jù)庫;并通過ActiveX Automation技術使程序與Office、CorelDraw軟件對象進行鏈接,從而控制軟件實現(xiàn)相應功能。數(shù)據(jù)預處理模塊使用ArcEngine開發(fā),地圖輔助設計與成圖使用CorelDraw的VBA技術實現(xiàn)。
專題地圖設計前需對地理底圖數(shù)據(jù)和專題要素進行預處理,包括地圖投影選擇與轉換、要素選取與簡化、圖層標注與注記生成、矢量數(shù)據(jù)轉換為CDR等,這些處理是多源數(shù)據(jù)融合的基礎。
1)地圖投影選擇與轉換。一方面,制圖的數(shù)據(jù)來源多樣,投影也往往不一致,需要將不同制圖數(shù)據(jù)轉換到一致的地圖投影中;另一方面不同用途、不同比例尺的地圖往往需要選擇不同的投影。不同投影間有確定的轉換方式,能在ArcGIS中快速進行,因而本文對目前生產(chǎn)單位常用的地圖投影進行了整理,建立了圖種與投影的對應關系,能輔助地圖投影選擇,實現(xiàn)地圖投影的快速轉換。
2)要素選取與簡化。點狀地圖要素的選取采用按密度選取和按屬性或等級選取的方法;線狀地圖要素按照長度或等級選取,采用Bend算法或D-P算法簡化;面狀地圖要素按照面積或等級選取。
3)圖層標注與注記生成。對需要生成注記的圖層進行標注后,再將標注轉化為對應的注記圖層。
4)矢量數(shù)據(jù)轉換為CDR。在分析制圖數(shù)據(jù)需求的基礎上,自動實現(xiàn)了ArcGIS矢量數(shù)據(jù)到CDR文件的無損轉換。采用C#語言進行編程,借助ArcGIS接口讀取矢量數(shù)據(jù)的圖形信息和屬性信息,然后使用CorelDraw的接口在CDR中寫入圖形和屬性信息,從而實現(xiàn)數(shù)據(jù)格式的無損轉換。其中,在CDR中使用對象數(shù)據(jù)來存儲屬性信息。
表1 系統(tǒng)開發(fā)環(huán)境
地圖符號庫使用Access數(shù)據(jù)庫(db_MapSymbol Libraries.mdb)來存儲和管理符號參數(shù)信息,由文件庫存放符號實體(CDR和圖片)。地圖符號庫包含點狀地圖符號、線狀地圖符號和面狀地圖符號,分別對應多 張參數(shù)表,其中典型符號示例如圖3所示。
點狀地圖符號屬性表包括符號名稱、要素類型、符號寬度、符號高度、定位點、旋轉角度,使用文件來存儲點狀地圖符號實體(.cdr)和點符號預覽圖(.bmp)。
線狀地圖符號基于圖元和程序塊方法繪制。由于一般的圖元分類較復雜,本文依據(jù)CorelDraw的自身特點,將圖元分為長線圖元、短線圖元和點狀圖元3種。在CorelDraw圖元分類的基礎上,對CorelDraw中的線狀地圖符號進行分類,依據(jù)其圖元構成可分為4類:①由一種或幾種長線圖元疊加組成,如高速公路等;②由在一條或幾條長線圖元上,按一定規(guī)則排列的短線圖元組成,如防洪堤等;③由在長線圖元上按一定規(guī)則排列的點狀圖元組成,如溝渠符號;④不能通過圖元組合的方式得到的符號,包括河流、橋梁、長城等特殊符號。線狀地圖符號參數(shù)也采用Access表的形式進行存儲,包括一張母表和多張子表。其中,母表用來存儲LineSymbol對象的屬性,每一種類型的圖元對應一張子表,每張子表的每個字段分別用來存儲圖元的編號和屬性。對于不能通過前幾種圖元組合得到的符號(橋梁、長城),采用程序塊進行繪制,存儲其在繪制過程中所有必要參數(shù)。母表的內(nèi)容包括ID、符號名稱、符號類型、地物類型、圖元個數(shù)、組成圖元;長線圖元屬性表包括ID、圖元寬度、圖元線樣式、圖元顏色;短線圖元屬性表包括ID、圖元寬度、圖元長度、圖元間間隔、圖元方向、圖元偏移、圖元顏色;點狀圖元屬性表包括ID、圖元寬度、圖元高度、圖元間間隔;河流屬性表包括ID、橋梁線寬度、橋梁線顏色、橋梁長線長度、橋梁短線長度、橋梁短線角度、是否包含矩形塊、矩形塊顏色;長城屬性表包括ID、長城短線長度、長城短線寬度、長城短線間間隔、長城線顏色;在建高速公路屬性表包括ID、線劃個數(shù)、中心線寬度、道路寬度、邊線寬度、中心線顏色、道路顏色、邊線顏色、實部長度、虛部長度。
根據(jù)填充對象的不同,面狀地圖符號可分為顏色填充、點狀圖元填充和暈線填充,分別對應3張參數(shù)表來存儲填充對象的參數(shù)信息。面狀地圖符號的繪制采用程序塊方法實現(xiàn)。顏色填充屬性表包括ID、要素類型、面域顏色、輪廓線寬度、輪廓線顏色;點狀圖元填充屬性表包括ID、要素類型、圖元名稱、圖元寬度、圖元高度、角度、填充方式、垂直間隔、水平間隔;暈線填充屬性表包括ID、要素類型、角度、間隔、填充方式、線寬、線型、顏色1、顏色2。
圖3 符號庫中典型符號示例
地圖色彩庫使用Access數(shù)據(jù)庫來存儲,分為分級統(tǒng)計圖配色、分區(qū)統(tǒng)計圖符號配色、行政區(qū)劃配色和色帶配色4個類別,分別對應4張色彩參數(shù)表,存放色彩組合值。根據(jù)實際配色中使用的色彩數(shù)目,色彩參數(shù)表中最多可存儲10個色彩值。色彩配置樣本是從已公開出版的優(yōu)秀地圖/地圖集或相關的論文中總結、抽象所得,保證了色彩模板對地圖設計的適用性和藝術性。色彩參數(shù)表包括ID、顏色數(shù)、顏色1、…、顏色10。
地圖內(nèi)容配置樣本庫使用數(shù)據(jù)庫參數(shù)表來存儲地圖內(nèi)容,建立特定比例尺下特定類別專題地圖內(nèi)容(地物要素集合)的對應關系,同時存儲地物要素所對應的地圖符號信息。樣本庫的內(nèi)容(地物要素及其符號)是日常制圖經(jīng)驗的總結,將一些公認優(yōu)秀的符號組合方案存儲下來,專門用來指導地圖的符號設計。制圖人員可參考樣本庫中已設計好的符號信息,也可將自己設計好的樣本庫保存起來。一個地圖內(nèi)容配置樣本庫由一個Access數(shù)據(jù)庫文件組成,包括點狀地圖要素、線狀地圖要素、面狀地圖要素、地圖注記要素4張主表,以及控制線符號和面符號參數(shù)信息的多張從表。
地圖輔助設計與成圖是系統(tǒng)的核心功能,主要包括地圖版式設計、地圖符號系統(tǒng)設計、地圖整飾設計、專題統(tǒng)計符號生成、多源數(shù)據(jù)(表格、文本等)融合等功能。地圖輔助設計與成圖的主界面如圖4所示。
圖4 地圖輔助設計與成圖主界面
2.3.1 地圖版式設計
1)地圖數(shù)學基礎的還原。地理數(shù)據(jù)進入CorelDraw后丟失了數(shù)學基礎,如地圖投影和比例尺,因而需將進入CorelDraw的空間數(shù)據(jù)轉化到對應的比例尺下,再進行地圖圖面配置設計。在地理底圖數(shù)據(jù)預處理時,根據(jù)地圖的比例尺和實際地圖范圍,可計算并導出地理底圖(地圖投影坐標系下)對應比例尺下的地圖范圍,將導入CorelDraw的制圖數(shù)據(jù)縮放到對應的地圖范圍下,即可將制圖數(shù)據(jù)還原到原始比例尺下。
2)確定最大制圖范圍、內(nèi)圖廓尺寸以及比例尺??紤]到印刷的需要,需預留出紙張空白空間,以全開紙張為例,其計算過程為選定紙張,確定最大制圖范圍后,可根據(jù)導入制圖數(shù)據(jù)的比例尺計算地圖在當前確定紙張和制圖范圍下的比例尺,并將制圖數(shù)據(jù)進行縮放,使之處于最大制圖范圍內(nèi),并自動生成內(nèi)圖廓。根據(jù)實際制圖經(jīng)驗,地圖范圍通過主區(qū)界線向四周擴大10 mm,即為內(nèi)圖廓范圍。圖廓設計界面如圖5所示。
圖5 圖廓設計界面
3)地圖圖面配置設計,即充分利用地圖幅面,針對圖名、圖廓、圖例、附圖、附表、比例尺以及各種文字的版面設計。利用視覺平衡模型,以地圖生產(chǎn)中常用的地圖圖面配置方案為示例庫,實現(xiàn)地圖圖面的自動配置,為地圖設計人員提供較合理的設計方案。在地圖圖面要素配置過程中,需考慮紙張大小和地圖比例尺,首先用矩形框代表圖名、圖例、比例尺等地圖圖面要素的大小和位置;然后結合地圖圖面要素配置規(guī)則,計算出不同地圖圖面要素的尺寸大小、位置,并使地圖圖面協(xié)調(diào)。另外,利用視覺平衡評價模型來評價生成的版式是否達到了視覺平衡效果,并通過對矩形框的大小和位置進行微調(diào)使圖面盡量達到視覺平衡。地圖圖面要素與地圖主圖之間的沖突需在地圖自動設計過程中進行探測,若地圖圖面要素與地圖主圖存在交叉沖突,則自動搜尋合適位置,為用戶提供更規(guī)范、美觀的地圖圖面要素配置模板。地圖版式設計界面如圖6所示。
圖6 地圖版式設計界面
2.3.2 地圖符號系統(tǒng)設計與地圖要素符號化
首先對地圖圖層進行標準化命名,再選擇地圖類別對應的地圖內(nèi)容配置樣本庫,將其中的地物要素圖層與當前地圖圖層做匹配,然后對地圖進行快速符號化,最后對圖層進行排序,控制圖層之間的壓蓋關系。
2.3.3 地圖整飾設計
地圖整飾設計主要涉及比例尺、圖例、地圖色帶和花邊等的生成。根據(jù)用戶選擇的地圖內(nèi)容模板設置圖例的樣式,使用圖例生成程序即可自動生成圖例;比例尺和色帶可使用相應程序自動生成;對于花邊,系統(tǒng)建立了常用的花邊樣式庫,可管理花邊并自動生成花邊。
2.3.4 專題統(tǒng)計符號設計與生成
專題統(tǒng)計符號主要包括生成統(tǒng)計圖表、分區(qū)統(tǒng)計圖和分級統(tǒng)計圖。對于專題統(tǒng)計圖表,系統(tǒng)使用TeeChart控件來完成多種圖表的繪制,主要包括常用的柱形圖、扇形圖、點狀圖等,并能通過屬性編輯改變相應的表達形式(如是否3D樣式、圖表背景顏色、圖的旋轉角度等)。對于分級統(tǒng)計圖,系統(tǒng)提供了數(shù)據(jù)自動分級模型,并能使用分級色彩模板對已分級的行政區(qū)劃進行著色。對于分區(qū)統(tǒng)計圖,可自動實現(xiàn)常用的統(tǒng)計圖表繪制。統(tǒng)計數(shù)據(jù)支持Excel格式和Access數(shù)據(jù)庫格式。
2.3.5 多源數(shù)據(jù)融合
除了矢量數(shù)據(jù)、影像數(shù)據(jù)和DEM外,專題地圖設計中還包括圖像數(shù)據(jù)、統(tǒng)計數(shù)據(jù)、表格數(shù)據(jù)、文檔數(shù)據(jù)等,系統(tǒng)可將txt、Word、PDF三類常用格式的文本文件和jpg、png、tif等多種圖片格式導入CDR中,同時提供Excel格式數(shù)據(jù)的無損導入。其實現(xiàn)方式是將Excel導出為PDF,再導入到CDR中。
2.3.6 地圖設計書框架生成
在地圖設計過程中將產(chǎn)生地圖設計的相關參數(shù),如版式設計參數(shù)、地圖要素、地圖配色、比例尺等。首先將地圖設計參數(shù)導出為txt文本或圖片,再使用ActiveX Automation技術建立與Word程序的鏈接,自動生成一個Word文檔,即地圖設計書框架,為地圖設計人員提供方便。
以安徽省部分區(qū)域數(shù)據(jù)為樣例,按照專題地圖的設計流程,利用本文所設計的地圖輔助設計工具中已集成的符號庫、色彩庫、地圖內(nèi)容配置樣本庫、花邊樣式庫等素材,借助輔助設計工具中已實現(xiàn)的制圖功能,實現(xiàn)了相應圖種樣圖的快速制作,結果樣圖見圖7。
圖7 樣圖示例
在制圖過程中,從地理底圖數(shù)據(jù)的投影選擇、要素簡化、ArcGIS矢量數(shù)據(jù)到CorelDraw格式無損轉換大部分制圖工作都可通過輔助設計工具來完成;在CorelDraw中利用制圖插件可進行地圖圖廓版式設計、地圖符號設計與符號化、底圖配色、地圖整飾設計(圖例、比例尺、色帶和花邊的生成)、專題統(tǒng)計符號的繪制。當然,少部分細節(jié)目前仍需要人工參與處理,如少部分注記沖突處理、圖例局部調(diào)整等??傮w看來,本文研究的基于CorelDraw的專題地圖輔助設計工具能夠幫助制圖人員快速制圖,并有效提高專題地圖的設計效率。
本文從需求分析、技術方案、功能設計與實現(xiàn)等方面研究了基于CorelDraw的專題地圖輔助設計工具的實現(xiàn)方法,并根據(jù)設計思路實現(xiàn)了系統(tǒng)的功能,已應用于實際專題地圖的生產(chǎn)。從生產(chǎn)單位應用情況來看,該工具提高了制圖效率,取得較好的實驗效果,對于專題地圖自動設計具有一定的指導和借鑒意義。
[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] 孟祥飛,王衛(wèi).ArcGIS數(shù)據(jù)與CorelDraw數(shù)據(jù)的轉換方法研究[J].測繪科學,2009,34(3):181-182
[6] 王雷,趙冰雪.ArcGIS與CorelDraw數(shù)據(jù)格式轉換實現(xiàn)[J].宿州學院學報,2016,31(10):107-109
[7] 喬俊軍,房雪玲,姜戰(zhàn)底.ArcGIS到CorelDraw的數(shù)據(jù)轉換及圖層異常改正[J].測繪與空間地理信息,2013(1):27-29
[8] 朱新銘,李少梅,彭湃.基于Illustrator的Shapefile空間數(shù)據(jù)讀取方法研究[J].測繪與空間地理信息,2016(2):100-103
[9] 馬曉東,王海芹,王苑. MapGIS數(shù)據(jù)與CorelDraw數(shù)據(jù)轉換技巧[J].測繪技術裝備,2003,5(2):45
[10] 廖義杰,余潔,劉繼琳.基于出版的地圖數(shù)據(jù)向GIS空間數(shù)據(jù)轉換的方法探討[J].測繪通報,2004(3):44-46
[11] 喬俊軍,房雪玲,張海文.基于CorelDraw的制圖要素符號化研究[J].測繪與空間地理信息,2013(8):30-33
[12] 吳小芳,杜清運,徐智勇,等.復雜線狀符號的設計及優(yōu)化算法研究[J].武漢大學學報(信息科學版),2006(7):632-635
[13] 王偉,張波,殷贛華,等.基于COM技術的地圖符號庫結構設計與實現(xiàn)[J].武漢大學學報(信息科學版),2002(3):296-300[14] 車森,孫群,劉海硯.參數(shù)控制的地圖符號編輯器設計[J].武漢大學學報(信息科學版),2013(11):1 326-1 329
[15] 田祖斌,龍思宇,王剛剛,等.基于Illustrator的圖集符號庫設計與實現(xiàn)[J].山東理工大學學報 (自然科學版),2012(3):81-83
[16] 李論,張志鵬,陳慎.基于CorelDraw X6的專題地圖統(tǒng)計圖表自動化實現(xiàn)[J].測繪工程,2014,23(1):65-69
[17] 何曼麗.應用AI軟件輔助ArcGIS的城市地質(zhì)調(diào)查成果專題制圖[J].上海國土資源,2014,35(2):95-97
[18] 秦志偉. MapGIS在地質(zhì)制圖中的應用研究[J].測繪與空間地理信息,2014(4):104-106
[19] 王磊,續(xù)玉萍,嚴薇.基于Microstation的專題地圖編輯與出版[J].測繪與空間地理信息,2013(2):176-178