上篇:第五章-基于SVG的表达规范_第1页
上篇:第五章-基于SVG的表达规范_第2页
上篇:第五章-基于SVG的表达规范_第3页
上篇:第五章-基于SVG的表达规范_第4页
上篇:第五章-基于SVG的表达规范_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章基于SVG的表达规范,尹章才,表达规范是根据地图图式规范要求,实现地图符号的规范化表达。地图符号是一种复杂的图形,需要采用完备的图形元素进行表示。本章首先分析了SVG的特点,提出了基于SVG的地图符号描述模型,并利用SVG详细设计了地图符号。,5.1可升级矢量标记语言,Unicode和WindowFont字体,也可作为开放标准格式的网络语言,用来表达地图符号。它们包括全世界所有字体、基本图形(如三角形、菱形等)、基本地图符号(如山峰、蒙古包、庙宇等)。,因此,Unicode和WindowFont能表示部分基本地图符号和复合的地图符号,且与平台无关。但它们不是专门针对图形的,因此相对于SVG在描述地图符号方面具有一定的难度和复杂度等不足。,5.1.1SVG概述,SVG是W3C(2003)制定的基于XML的图形标记语言。根据功能不同,SVG的主要对象可归为基本要素对象和描述功能对象两大类:前者不仅支持文字、图像和基本图形,而且对于贝塞尔曲线也同样支持,并引入路径的概念;后者包括字体描述、坐标变换、填充、透明、链接、描边、动画、显示方式、剪切路径、组合对象以及箭头等。,通过与SVF、DWF、Flash、PDF、PGML、WebCGM、HGML、DrawML、VML、Java2D、SWF(ShockWaveFlash)以及ActiveX等图形格式在可视化方法、使用情况、交互性以及内部格式等方面的比较,SVG作为二维的网络图形格式具有很大的优势。,OpenGIS把SVG作为WMS的一个基本文件格式,OGC在SLD中采用SVG的词汇表描述地图符号。这意味着,SVG在如下方面适合于地图制图:1)坐标系统和转换处理;2)图层管理;3)强有力的文字处理功能,如文字沿路径分布、字体管理等;,4)栅格图像管理,能进行矢栅合并;5)图形元素具有线型、透明度等参数,能绘制高质量的地图;6)通过使用Javascript和DOM,具有很强的交互功能;7)能扩展自定义的非图形属性等;8)SVG能支持“多文档视图”,主视图是SVG文档唯一的根标记,每一个子视图采用一个嵌套的表示。,5.1.2SVG与地图表达,地图表达涉及到地理数据和地图数据,而SVG与这些数据存在如下的内在联系,从而便于通过SVG实现地理数据-SVG-地图数据的转换与地图表达:,1)GML与SVGGML与SVG都是基于XML且与几何图形相关的标记语言。其中,GML描述地理数据,包括空间几何、要素属性以及要素之间的拓扑关系;SVG描述图形、图像以及文本,但不支持拓扑表达,两者具有一定的对应关系(图5.1.1)。,GML与SVG在几何描述方面具有类似的功能,如GML的最小包围盒能通过SVG多边形的getBox()操作实现。GML的线、面与图像能与SVG对应的元素直接映射(表5.1.1),由于GML的点元素在SVG中没有直接的元素表示,但可以通过SVG的其他图形元素来表示。,2)SVG与地图SVG能为地图制图提供标准的基于矢量格式的解决方案。CorelDraw制图中没有点的概念,对应于SVG没有点的图形一样。地图符号可以由SVG的形状元素进行描述;注记由SVG的文本元素表示;图层由SVG的组元素表示(图5.1.2)。,3)GML、SVG与地图GML、SVG与地图之间通过中间枢纽图形紧密联系在一起,但各自侧重点不同。GML面向二维空间地理数据的描述;SVG面向二维矢量图形的表达,可用于表示二维矢量的、多媒体的、面向网络的地图(图5.1.3)。,SVG地图具有:1)放大缩小,用户可以放大地图图像到任何倍数而不必担心损失地图的细节;2)文字的查询,由于文字在SVG图形里面仍然是以文字表示的,所以可以很容易地被查询和修改;3)文件小,SVG是文本文件,其压缩率非常高,使得文件大小和下载时间大大减少,这对于数据量大的地理数据在Web上发布是非常重要的(刘旭军2004);,4)可提供16位色支持,使地图颜色丰富多彩;5)可以很容易地实现和用户交互,编写鼠标事件就可以实现高亮度显示,地图提示,特殊效果等;6)支持超链接,当SVG图形放大或漫游时,通过URL能动态加载更加详细或不在视口范围的数据,实现层状细节模型的分布式处理。,5.2基于SVG的地图符号描述,地图符号的描述方法可分为文字、数学方法、半结构数据模型、XML、GML、SVG描述等阶段(尹章才2004):1)文字描述比较简单,但缺乏结构性,不便于计算机理解;2)数学方法逻辑性强,但缺乏易读性;3)半结构数据模型,如OEM只能描述无序的对象;,4)XML方法具有结构性,且能描述有序的现象,但不直接支持复杂图形的描述;5)GML专门用于标记地理数据,包括图形,但不直接支持地理要素样式的描述;6)SVG是一种图形标记语言,便于地理要素样式地图符号的描述。将GML格式转换为SVG格式进行网上浏览,能进行简单的地图符号显示,但没有形成地图符号的体系结构和描述规则,达不到地理数据形象化的效果。,5.2.1基于SVG的地图符号描述模型,当前的制图软件与GIS软件采用不同的地图符号描述规则,虽然能实现符号化的地图,但由于地图符号的描述规则不同导致地图难以跨平台共享与交互。地图符号的图形描述与图形显示,是地图符号的两个不同方面。具有相同图形的地图符号,其描述规则可以不相同。,因此,形成一套既便于对于地理信息直观可视化符号的表达,又便于计算机实现的符号描述规范,是解决当前地图/地图符号共享的关键问题。将我国地形图符号的设计规范与SVG相结合,构建基于SVG的地图符号描述模型,为地图符号的共享与网络地图互操作提供理论基础。,地图符号无论在分类上,还是在结构上,都具有明显的半结构化特点。而SVG是半结构化的图形标记语言,因此SVG能满足地图符号描述与设计的需要。标记语言是使用“记号”来表示格式或数据信息的语言,地图是使用地图符号来表示地理信息的图形语言,这意味着地图符号是地理信息的标记语言。地图符号由图形构成,可以用SVG来标记(图5.2.1)。,基于SVG的地图符号描述模型包括概念、逻辑和物理模型。概念模型包括两种标记:一种是地图符号标记表示地理数据,属于地图符号论的范畴;另一种是SVG标记表示地图符号。,在逻辑模型中,SVG标记地图符号分为两个部分:地图符号是通过符号化操作而形成的图元集合和用SVG标记图元格式两部分。物理模型是采用SVG描述地图符号的逻辑模型,包括SVG文档描述地图符号,SVG描述功能表示符号化操作,SVG基本要素表示地图符号图元。,将进一步分析基于SVG的地图符号格式支持、符号定义和符号化操作描述等3个方面。1)基于SVG的地图符号格式地图符号分为点状、线状、面状地图符号与注记,其格式对应于SVG的主要对象:矢量、栅格和文本(图5.2.2),因此SVG在图形格式方面能完全表示地图符号的图元。,2)基于SVG的符号定义地图符号的操作能采用SVG的描述功能进行描述和实现(图5.2.3)。点状地图符号和注记由SVG的基本要素构成,主要对应于SVG的坐标变换功能;线状地图符号主要对应于SVG的描边功能;面状地图符号则主要对应于SVG的填充功能。,3)基于SVG的符号化描述地理信息图示表达的表达规范与函数相对应,函数在空间位置上的计算生成地图符号,其中表达操作是函数名,样式参数是函数的参数。因此表达规范可描述为:函数函数名()表达规范表达操作(),其中,表达操作根据地图符号的几何类型,分为点、线、面与注记操作。形参与实参成对出现,即语义与模式未进行分离,具有半结构化特点。参数表示地图符号的图形特征。表达服务采用参数提供的信息在地理空间位置上执行表达操作,实现符号化。表达规范的表达操作与参数对应于地图符号逻辑描述模型的操作与图元。,5.2.2基于SVG的图元描述,地图符号的基本图元可由SVG的基本要素构成(Tsoulos2003)。地图图元是地图符号的基本几何图形,能进行几何变换,同时还具有绘制属性,如描边和填充等。因此图元能从几何形状、坐标变换与绘制属性等几个方面进行描述(图5.2.4)。,图元几何形状分为点、线与面图元及注记等类型(表5.2.1)。其中:1)点图元,表示具有规则几何形态的图形单元,包括椭圆形(圆形、椭圆形、椭圆弧、圆弧)、三角形(等腰三角形、等边三角形、直角三角形)、矩形(正方形、圆角矩形、直角矩形)、菱形、扇形、星形、正多边形,点图元在符号中不允许发生变形;,2)线图元包括折线、曲线(Bezier曲线);3)面图元表示用户自定义的任意多边形,包括折线型多边形(包括孤岛多边形)、曲线型多边形;4)注记,是文字的几何变换,包括字体描述与几何变换描述。,地图符号的图元能采用SVG的标记及其属性进行描述。SVG的与能描述椭圆与圆;能表示多边形;表示矩形或圆角矩形;表示折线;表示路径,既能表示Bezier曲线、圆、椭圆等,同时也能表示直线、折线与多边形。采用SVG的表示注记的字体描述,表示文字沿路径分布,文字的属性描述文字位置、方向、大小、装饰效果、字体等。,5.3基于SVG的地图符号设计,基于SVG的地图符号描述模型,从理论上阐明了SVG表示地图符号的能力,为基于SVG的地图符号设计提供了重要保证。本节采用SVG的字体组织地图符号库,自定义的字形描述地图符号。,5.3.1基于SVG的符号库结构,配置在空间位置上的地图符号类,称为符号实例,其过程称为符号化或实例化。地图符号具有符号类与符号实例两个概念,在任何时候地图符号只能取其中一个涵义。地图符号可以从三个方面进行描述:符号几何类型、图形参数与符号位置,它们分别构成地图符号的三个维(图5.3.1)。,如面符号实例A湖泊,其对应的几何类型为面状,图形参数是,空间位置是表示A湖泊所在的位置的一系列坐标。A湖泊所对应的符号类湖泊,包括几何类型与图形参数存储在符号库中,与具体的地理要素位置无关。,SVG中的元素以明文的形式定义了一种可供使用的字体。元素包含了两部分:作为接口的元素部分和作为字体轮廓定义的与元素部分,其中,,子元素描述本字体所定义的各种特性,以供外界使用;每个元素使用”Unicode”属性指明其代表的字符,同时使用”d”属性描述该字符的字形轮廓。元素除了没有”Unicode”和”glyph-name”属性外,其他各种属性基本与元素相同。,地图符号库结构由符号库接口与地图符号表示构成(图5.3.2)。,符号库接口通过font-family属性标识符号库。地图符号表示由三个部分组成:符号基本信息、符号交互属性与符号图形表示。符号基本信息包括符号标识符、符号要素类型与符号几何类型,其中,符号标识符由Unicode表示。符号要素类型与几何类型是自定义属性类型,便于地理信息能按几何或要素进行分层,几何类型包括点、线、面等类型。,符号交互属性由元素的属性style表示,用于地图符号与用户交互时实现图形的变化,如颜色变化、线型变化等。地图符号的其他属性可以在元素中通过自定义属性表示。元素用于组织地图符号的图形部分。,5.3.2基于SVG的地图符号设计,采用SVG实现地图符号时,线符号进一步分为对称型线符号与非对称型线符号,面符号分为填充型面符号与非填充型面符号。,(1)点符号设计点符号的特征描述,一般包括定位点、方向、大小、形状等参数,在电子地图中点符号还具有动画特性。点符号的形状对应于SVG的基本图形;定位点、方向与大小对应于SVG的坐标变换的平移、旋转和缩放.SVG的Transform属性能实现点符号在定位点处按照一定的位置、方向、大小与错切等进行符号化,实现地图的点符号配置。,SVG定义动画的元素有5个:、,它们都是使某一个元素的属性值或样式参数值随着时间发生变化,只是动画效果的侧重点不同。动画元素的通用属性有:标识所作用元素、标识所作用属性或样式参数、控制动画播放时间、控制动画过程及控制动画的叠加等(图5.3.3)。,基于SVG的动态点符号是在点符号中(甘莉b2004),加入动画效果,能实现表示动态的地理要素,如烟囱、天文点、发射塔、风车等(图5.3.4)。,(2)线符号设计线符号按照SVG实现方法,可以分为对称型线符号与非对称型线符号两种类型。线符号通常采用组合方法进行设计,将不同的成分进行组合(图5.3.5),与组合成符号。,与线相关的SVG绘制属性有“skoke-width”,“stroke-linecap”,“stroke-linejoin”,“stroke-dasharray”,“stroke-dashoffset”,“stroke-opacity”等,分别表示线条宽度、路径线条端点的绘制式样、线条交叉时交点处的过渡形状、线型、起始偏移量、透明度。,对称型线符号将不同线型按照一定的层次顺序进行组合,符号中的每条线都沿线符号中轴线对称。非对称型线符号也是一种组合符号,但符号中至少有一个成分不是沿中轴线对称,这类符号难以使用SVG的图形元素直接进行描述。,因此需要采用其他方法,如文字沿路径排列来实现非对称型线符号。是文字“l”按照线符号中轴线路径进行排列,其中文字可以是已有的文字或自定义的文字。,(3)面符号设计根据SVG的特性,面符号设计可以分为两大类:填充型与非填充型面符号。填充型面符号包括纹理填充、单一颜色填充、色彩线性渐变填充、色彩放射状渐变填充与模式填充,分别对应于SVG的、与元素。,其中,元素可将一个完整的点阵图像(包括SVG图像)文件渲染到当前用户坐标系的指定矩形区域内(图5.3.6);,元素用于填充多边形对象,包括色彩与模式填充;与属于色彩渐变,是指用两种或两种以上的颜色通过特定方向的过渡来实现绘图的过程,能达到生动美观的效果;模式填充是使用一小块特定的图像作为模板铺满所需要绘制的区域。,模板填充可以实现面符号的色彩、渐变、纹理、晕线、井型与品型填充,并能进行分层设计。晕线模板之间有时会出现缝隙(图5.3.7.a),可以通过将同一模板进行平移并与原模板一起实现无缝(图5.3.7.b)。,“井”型填充面符号中,每个模板只有一个填充的点符号(图5.3.7.c)。“品”型面符号则是每个模板有两个呈对角分布的点符号(图5.3.7.d)。,模板填充不能有效实现随机填充,包括点符号的位置随机、大小随机、方向随机、形状随机等。采用模板方法模拟随机变化时,需在一个模板中填充多个随机的点符号,但在整个面符号中仍能看出以模板为单元的规则分布特点(图5.3.8.a)。非填充型面符号通过SVG的DOM接口,利用脚本程序实现具有随机特性的面符号(图5.3.8.b),包括方向、形状、大小、位置的随机变化。,(4)基于分层的面符号设计基于分层的面状地图符号设计,将面状地图符号设计分为若干层,每层采用不同的填充方式,并按照一定的约束关系进行组合。,面状符号属性有轮廓线、层数和填充方式,其中填充方式的描述信息包括填充对象描述(标识符、高度、宽度、颜色)和填充规则描述(平铺、拉伸、瓦晕、交错间距、行距、列距、方向、行偏移量、列偏移量等)(表5.3.1),表达面状符号的定性与定量信息,使符号的设计自由灵活。方向变量在晕线填充中表示晕线方向;在点符号填充中,表示点符号方向,当为负数时,表示随机方向。,为了避免各层之间的相互压盖和不同层点符号之间的相互交叉,分层设计的面状符号需要处理好两种关系:层的次序关系与层间点符号的约束关系。可描述为:=。,层的次序关系是指面符号按照层号从小到大的顺序进行绘制,即先绘制颜色或位图的面填充;再绘制线填充;最后绘制点符号的填充,从而避免了各层之间的相互压盖。基于SVG的面状地图符号设计,采用SVG的基本对象与描述功能实现面状地图符号的分层表达(图5.3.9),各层之间的约束关系采用嵌套的脚本实现。,5.3.3基于SVG的地图注记设计,在地图语言中,除了利用以图形为主的基本语言地图符号外,还使用了自然语言地图注记(祝国瑞2003)。地图注记的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论