基于PostScript成像模型的线状地图符号数据结构

2011-01-31 08:22吴明光陈泰生檀姗姗闾国年盛业华
测绘学报 2011年5期
关键词:笔划线状数据结构

吴明光,陈泰生,檀姗姗,骆 骐,闾国年,盛业华

南京师范大学虚拟地理环境教育部重点实验室,江苏南京210046

1 引 言

地图符号利用形状、尺寸、大小、网纹、色彩等视觉变量来表达定位、定性和定量的地理信息[1],实现对地理空间原貌的抽象,形成地图模型[2];通过象形、会意的图形刺激人的大脑,产生心像,引导视觉思维。线状符号是地图上使用最为广泛的符号之一,用来表达地理空间上沿某个方向延伸的线状或带状现象的地理要素,如河流、道路、国界线等。线状地图符号设计难点在于:①线状地图符号的图形结构差异较大,难以采用一种通用的、格式化的模式或模板来描述;②线状符号所指代的地理目标本身形态复杂,光滑、移位、抹角等处理均需要复杂的计算几何算法;③制图活动所形成的线状符号交叉、压盖、共位冲突等情况的处理规则也增加了线状地图符号绘制的难度。此外,线状符号的数据结构决定符号的分解模式,也决定符号的定长提取、嵌套与循环算法,直接影响符号绘制的时间复杂度与空间复杂度。

2 现有线状地图符号数据结构分析

线状地图符号数据结构方面,OGC(open geospatial consortium)制定了 Styled Layer Descriptor Implementation Specification1.0.0标准[3],ArcGIS定义了7种基本线型[4],文献[5-9]人研究了线状地图符号构图方法[5-9]。综合来看,当前国内外线状符号数据结构可分为以下三类:

(1)单元循环配置法,线状符号由特定的图形单元按照线的延展方向,采用一定的缩放比例、旋转角度等参数循环配置而成[7,9]。如图1所示,境界符号可以依据这种规则分解为一定的图形循环单元,横向循环配置而成。其特点是数据结构简单,易于编辑修改。文献[7]和[9]均采用此种方法。该方法被CAD系统和通用图形系统(如Illustrator)所采用。针对复杂线状符号如国界符号,由于点状符号的位置计算可以共享全局的循环遍历以及定长提取,因此其绘制效率较高。而对于连续的线状符号如铁路符号,因分割为配置单元时需要进行抹角处理,所以其绘制效率相对较低。

图1 单元循环配置法与线型叠加法Fig.1 Methods of cell-cycle configuration and line-type overlay

(2)线型叠加法,将复杂的线状符号纵向分解为一系列基本线型。通过基本线型绘制的叠加来完成符号的整体绘制。国界符号可以分解为三种不同线型(如图1右侧箭头处所示),它们纵向叠加可以得到最终的符号,文献[4-5,8]均采用此种方法。该方法数据结构简单,基本线型可以任意扩充。此类方法在绘制连续的笔划时具有较高的效率,但是在处理多个笔划构成的线状符号时,需要进行多次分段和边界处理,绘制效率降低。

(3)纯函数绘制法,在某种开发语言或对外暴露的符号对象绘制接口(如ArcEngine组件中的ISymbol)下,针对每一个地图符号编写相应的符号绘制程序。其优点是绘制效率高,但是符号扩充、修改及交换困难,适合于绘制较为复杂的符号。

图2 复杂线状地图符号Fig.2 Complex line map symbol

此外,与符号数据结构密切相关的线状符号绘制方法方面,文献[10]提出了地图线状符号图案单元的优化配置方法,文献[11]提出了GIS符号库中复杂线状符号设计与绘制算法,文献[12]利用Snake移位模型解决符号化后道路网之间的空间冲突。这类算法从地图符号本身的构图方法来提高符号的绘图效果,但没有有机地结合图形学领域图形光栅化的研究成果(如:alpha混合、硬件加速绘制等技术),无法实现线状符号的最优绘制,符号化效率依然是地图类系统的瓶颈之一。

3 基于 PostScript成像模型的线状地图符号数据结构

从数据结构来看,线状地图符号可以视为在通用线型的基础上扩展相应地图符号构图规律,用以形象、准确地表达复杂的地理概念和地理现象。本文试图从通用线型和特殊构图规律两个方面来设计新型的线状地图符号数据结构。二维图形领域所广泛采用的成像模型包括Microsoft成像模型与 PostScript成像模型,本文采用 Post-Script成像模型。

3.1 PostScript成像模型

页面描述语言(PostScript语言,简称PS)是Adobe公司提出的一项二维图形描述标准。成像模型(imaging model)是PS语言描述图形时最基本的理论依据:页面上的任何对象(文本、图划、图像)均可视为一个二维图形,图形由页面某个指定区域上进行着色操作得到,指定区域通过构造路径而成,用户可以使用颜色或自定义图案对其进行着色,常用的路径构造操作符包括newpath、moveto、lineto、rlineto、curveto、arc和 closepath等几种。PostScript成像模型中最基本的着色操作符有填充(fill)、笔划(stroke)[13]。与Microsoft成像模型(如 GDI)对比而言,由 path、fill和stroke三元素构成的PostScript成像模型不仅构成了印刷领域通用图形描述语言,而且成为PDF、SVG、OpenVG、Flash以及HTML5等图形格式或标准的核心图形描述模型[14-17],甚至得到底层硬件绘图指令的直接支持而应用于各种嵌入式、手持式设备[18]。利用 PS成像模型来描述线状地图符号的优势可以归纳为:①基于统一的数据结构来描述直线、弧、Bezier以及Nurbs曲线;②直接兼容SV G、Flash、PDF等图形标准或格式,使地图符号能够同时支持屏幕显示、网络发布和制版印刷;③有利于直接利用图形学领域关于path的反走样、alpha混合、硬件加速等技术。

3.2 基于 PostScript成像模型的线状地图符号数据结构描述

本文针对线状地图符号构图特点,引入Post-Script成像模型中的通用图形描述机制,提出一种新型线状地图符号数据结构(以下简称PB数据结构)。构成线状地图符号的基本单元是路径、笔划、装饰和轮廓变换,如式(1)。线状地图符号可以由一个路径、任意多个不同类型的笔划、装饰和轮廓变换组成。

3.2.1 路 径

路径可以是数字化得到的矢量河流坐标,也可以是一个GPS轨迹点序列,还可以是遥感影像上通过目标提取算法获得的道路轮廓等。如图3所示,路径可以由任意多个段来组成,段可以为直线(AB)、圆弧(B C)、Bezier曲线(CD)、Nurbs曲线等。

图3 PB数据结构中的路径的构造Fig.3 Path in PB data structure

从几何意义上讲,直线、圆弧、Bezier以及Nurbs曲线等所包含的节点个数和参数类型均不一致,无法直接将任意path描述为一个结构化的信息块。为此,本文设计了标记顶点(顶点坐标和顶点类型)序列数据结构来解决这一问题:从几何体的构造过程来看,直线段由抬笔点A和落笔点B构成;圆弧由三个数据点 B、C、H构成;Bezier由节点C、D和控制点E、F、G构成。本数据结构不直接存储直线、圆弧、Bezier曲线、Nurbs曲线等几何类型,而是以标记顶点为单位存储其构造过程。表1列出了PB数据结构中所设计的顶点类型。

表1 PB数据结构中的节点类型Tab.1 Vertex types in PB data structure

path数据结构可以描述任意复杂的图形。在本文所提的数据结构中,路径仅表示几何意义上线状要素的形状,而线状要素外观则由笔划、装饰和轮廓变化来决定,它们的基础均为路径。

(4)在员工对“民主沟通和参与方式”的满意度评价中,本文依据文献,设计出如下二级评价指标:民主沟通和参与方式制度(U141)、企业中工会自由和集体谈判权力(U142)、以及民主座谈会(U143)。

3.2.2 笔 划

“笔划”表示用一个基本图元按照控制线的走向,采用一定的参数(宽度、角度)循环排列而成。基本图元可以是颜色像素、栅格图像,也可以是预先定义好的复杂线段单元。如图4,高速公路符号可以描述为将一个路径以一定的宽度用颜色填充而成;艺术风格的街道符号可以描述为将一个路径以一定的宽度用栅格纹理填充而成;岩石滩边线符号可以描述为将一个路径以一定的几何图案,循环配置而成;铁路符号包括虚实笔划和比虚实笔划略粗的颜色笔划。

图4 PB数据结构中的笔划Fig.4 Path in PB data structure

三种笔划的灵活选用可以同时兼顾单元循环配置和线型叠加两种构图模式的优势,从而避免采用单一构图模式导致的图元复杂与效率低的问题。与循环配置法相比,基于笔划数据的线状地图符号数据结构剥离出了连续的线划,避免循环配置中针对整体线划的分段、拐角处理等冗余操作,可以极大地提高绘制效率;与线型叠加法相比,基于笔划数据的线状地图符号数据结构,可以包含复杂的线段集元,有效减少对控制线的多次分段提取操作以提高绘制效率。

3.2.3 装 饰

“装饰”是采用一定的图形单元,按照一定的装饰规则对控制线进行补充描述。装饰数据结构如下:

装饰数据结构包含装饰符号、装饰规则、装饰几何变换矩阵和装饰过滤器四个成员。装饰符号描述采用何种符号来装饰路径,用于装饰的图形单元可以是文字、图形、线划或者栅格图片;装饰规则描述装饰符号与路径的位置关系。装饰可以位于控制线的某个特定位置,如:起点、终点、中点、数据点、等间距点、随机间隔点等。装饰还可以包含角度、缩放比例、偏移量等参数;装饰过滤器是对装饰规则的补充说明,表示在线状符号控制轴线的某些位置(端点、中点等)上强制取消装饰。图2中电力线、隧道、石质陡岸、公路运输线以及铁路运输线等符号均是配置装饰的结果。

3.2.4 轮廓变换

线状地图符号中有一类符号不仅具有线状符号的特征,也具有面状符号的特征,可称之为半线半面符号。如:宽度渐变河流、箭头符号等。对于此类符号,可以先进行轮廓变换,得到一个封闭的轮廓路径,然后对该路径进行填充来获得。轮廓变换是指针对特定路径中两相邻节点,在正、负法线方向处分别对其进行移位处理,由此产生两对新的数据点,它们之间可以由直线段或参数曲线连接,因此线状路径经轮廓变化后演变为封闭的面状路径。

如图5所示,由AB C三点构成的path,经过箭头轮廓变换得到7个等数据点,2-4、5-6之间采用Bezier曲线拟合,其他线段直接采用线段连接,得到一个箭头符号的轮廓路径,然后对该路径进行着色操作就可以得到箭头符号。针对不同的图形可以设计不同的轮廓变换方法。

图5 由轮廓变换得到箭头符号Fig.5 Arrow symbol from contour transformation

4 试 验

4.1 符号设计试验

为验证本文所提地图符号数据结构,构建线状地图符号设计器原型系统,开发环境选用Visual C++6.0,原型系统用户界面如图 6所示。

图6 线状地图符号设计器界面Fig.6 Interface of line map symbol designer

如图7所示,采用颜色笔划绘制国界、有堤管线符号,图元笔划绘制陡坎、背斜符号,栅格笔划绘制风格化的艺术符号。此外,利用装饰可以绘制石质崩崖符号,借助轮廓变换能够绘制渐变填充的箭头符号。

图7 采用PB符号数据结构设计复杂线状符号结果Fig.7 Results of designing complex line symbol on PB data structure

4.2 符号绘制效率对比试验

以国界符号和向斜符号为例,采用颜色笔划、图元笔划和栅格笔划三种方式分别构建两个符号。试验数据共包含五组线划数据,分别由220、465、1 347、2 759以及6 105个节点构成。试验设备为因特尔酷睿 CPU,主频为 2.50 GHz与2.49 GHz,内存为1.98 GB。如图8与图9所示,符号构建方法不同,其绘制效率差异也较大。国界符号中,图元笔划绘制效率最高,因为其重复单元结构相对较为简单而且避免颜色笔划中对控制轴线的多次定长提取;而向斜符号重复单元结构复杂,所以栅格笔划的绘制效率明显高于其他两种。

图8 国界符号效率测试结果Fig.8 Efficiency test results for national boundary symbol

图9 向斜符号效率测试结果Fig.9 Efficiency test results for syncline symbol

4.3 符号多介质输出试验

PB线状地图符号数据结构的基础为 PS成像模型,由于PS成像模型直接兼容SV G、Flash、HTML5等图形标准和格式,理论上 PB线状地图符号均能够无损映射到上述标准和格式,可以实现PB地图符号面向计算机屏幕、网络、打印机、绘图仪、印刷机的直接输出。试验中,针对某区域1∶25万地形图数据,采用PB符号库进行PDF、SVG输出试验。试验结果如图10和图11所示,结果表明PB线状地图符号能够无损输出为PDF、SVG等图形格式,可以实现符号库的“一库多用”。

图10 地图符号的PDF输出结果Fig.10 PDF outputs of map symbols

图11 地图符号的SVG输出结果Fig.11 SVGoutputs of map symbols

5 结 论

现有线状地图符号数据结构各有优劣,彼此难以兼容,无法描述复杂的线状地图符号,不支持卡通类、艺术类线状符号构建。本文针对线状地图符号数据结构问题,在分析线状地图符号构图规律基础上,引入PostScript成像模型中的通用图形描述机制,提出一种新型线状地图符号数据结构。该数据结构具有以下特点:①融合单元循环配置与线型叠加两种线状符号构图模式,能够根据线状符号图形特征而进行灵活分解绘制,从而保证最优的符号绘制效率;②具有较强的线状符号描述能力,支持卡通类、艺术类线状符号的设计,支持半线半面类型的线状地图符号设计,装饰规则和轮廓变换可以进一步扩充;③兼容各类图形标准和格式,同时支持地图符号的屏幕显示、网络发布和纸质印刷。

[1] WANG Jiayao.Development Trends of Cartography and Geographic Information Engineering[J].Acta Geodaetica et Cartographica Sinica,2010,39(4):115-119.(王家耀.地图制图学与地理信息工程学科发展趋势[J].测绘学报, 2010,39(4):115-119.)

[2] GAO Jun.Cartographic Tetrahedron:Explanation of Cartography in the Digital Era[J].Acta Geodaetica et Cartographica Sinica,2004,33(1):6-11.(高俊.地图学四面体:数字化时代地图学的诠释[J].测绘学报,2004, 33(1):6-11.)

[3] O GC 02-070.Styled Layer Descriptor Implementation Specification[S].Wayland:Open GIS Consortium,2002.

[4] ZEILER M.Exploring ArcObjects[M].California:ESRI Press,2001.

[5] CHENG Penggen,GONG Jianya,SUI Haigang.Design and Implement of Map Symbol Design System in GIS[J]. Journal of Image and Graphics,2000,5(12):1006-1011.(程朋根,龚健雅,眭海刚.GIS中地图符号设计系统的设计与实现[J].中国图象图形学报,2000,5(12):1006-1011.)

[6] WU Xiaofang,DU Qingyun,XU Zhiyong.Design and Algorithm Optimization of Complex Linear Symbol[J]. Geomatics and Information Science of Wuhan University, 2006,31(7):632-635.(吴小芳,杜清运,徐智勇.复杂线状符号的设计及优化算法研究[J].武汉大学学报:信息科学版,2006,31(7):632-635.)

[7] CAI Xianhua,WU Li.Study of Symbol Library Data Structure and Algorithm Based on Property Unit[J].Acta Geodaetica et Cartographica Sinica,2004,33(3):269-273.(蔡先华,武利.基于特征元的符号库数据结构及算法探讨[J].测绘学报,2004,33(3):269-273.)

[8] LI Qingyuan,LI Hongsheng,LIU Haochen.GIS Symbolic Library General Data Model and Data Exchange Format XML Schema[J].Geomatics and Information Science of Wuhan University,2008,33(6):565-568.(李青元,李洪省,刘皓晨.GIS符号库数据模型抽象及其交换格式研究[J].武汉大学学报:信息科学版,2008,33(6):565-568.)

[9] YIN Zhangcai,LI Lin,ZHU Haihong,et al.Description Model of Map Symbols Based on SVG[J].Geomatics and Information Science of Wuhan University,2004,29(6): 544-547.(尹章才,李霖,朱海红,等.基于SVG的地图符号描述模型研究[J].武汉大学学报:信息科学版,2004, 29(6):544-547.)

[10] GUO Qingsheng,ZHENG Chunyan.Intelligent Method of Optimum Placement for Pattern Cell of Linear Symbols [J]. Geomaticsand Information Science ofWuhan University,2002,27(5):499-504.(郭庆胜,郑春燕.地图线状符号图案单元的优化配置方法[J].武汉大学学报:信息科学版,2002,27(5):499-504.)

[11] HE Zhonghuan.Designing Technique of Complicated Linear Symbols inGIS Symbol Database[J].Geomatics and Information Science of Wuhan University,2004,29(2):132-134.(何忠焕.GIS符号库中复杂线状符号设计技术的研究[J].武汉大学学报:信息科学版,2004,29(2):132-134.)

[12] WU Xiaofang.Research on Intelligent Placement of Map Symbol Based on Disposing the SpatialConflictand Relationship between Features[D]. Wuhan: Wuhan University,2005.(吴小芳.基于要素空间冲突与关系处理的地图符号智能配置研究[D].武汉:武汉大学,2005.)

[13] Adobe Systems Inc.PostScript Language Reference Manual[M].3rd ed.Boston:Addison Wesley,1999.

[14] Adobe Systems Inc.PDF Reference[EB/OL].[2010-07-01]. http:∥www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf.

[15] W3C Recommendation.Scalable Vector Graphics(SVG) Full 1.2 Specification[EB/OL].[2010-07-01].http:∥www.w3.org/TR/SVG12.

[16] Macromedia Inc.Macromedia Flash Developer Center[EB/ OL].[2010-07-01].http:∥www.adobe.com/devnet/flash.

[17] W3C Recommendation.HTML5 Specification[EB/OL]. [2010-07-01].http:∥www.w3.org/TR/2010/WD-html5-2010-0304.

[18] RICE D.OpenVG Specification Version 1.0.1[EB/OL]. [2010-07-01].http:∥www.khronos.org/files/openvgquick-reference-card.pdf.

猜你喜欢
笔划线状数据结构
无取向硅钢边部线状缺陷分析及改进措施
数据结构线上线下混合教学模式探讨
热轧卷板边部线状缺陷分析与措施
加笔划成新字
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
线状生命
KD357:模拟汉字笔划的汉字键盘输入法
CDIO模式在民办院校数据结构课程实践教学中的应用
线状α=MnO2的水热制备及其电容性能