SVG表示地图数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SVG电子地图简介
电子地图己广泛应用于政府规划、经济贸易、旅游向导、卫星导航、作战指挥等领域。
在地区和城市的各级管理、建设、分析、规划和评价工作中,在城市信息系统、自然灾害预测评估信息系统、遥感作物估产系统、交通管理信息系统以及资源利用、区域规划等系统的建设中,电子地图都已成为重要地理信息基础。
电子地图应用领域还在不断扩展,电子地图的表现形式也将发生新的变化。
SVG可以算是目前最引人注意的图像文件格式了,它的英文全称为Scalable Ve ctor Graphics,意思为可缩放的矢量图形。
它是基于XML(Extensible Markup Language),由W3C联盟进行开发的。
它可让你设计激动人心的、高分辨率的Web图形页面。
用户可以直接用代码来描绘图像,可以用任何文字处理工具打开SVG图像,通过改变部分代码来使图像具有互交功能,并可以随时插入到HTML 中通过浏览器来观看。
它提供了目前网络流行格式GIF和JPEG无法具备了优势:可以任意放大图形显示,但绝不会以牺牲图像质量为代价,SVG文件比JPEG和G IF格式的文件要小很多,因而下载也很快。
可以相信,SVG的开发将会为Web
提供新的图像标准。
SVG格式的电子地图可以在浏览器上发布,有良好的可读性,地图显示清晰,显示数度快、可以提供给用户浏览、缩放、交互的工具;SVG地图可以方便的进行坐标的变换,能够分层,在程序中可以选择需要显示的层面;SVG地图是矢量格式,图象显示质量好,放大并不影响图形质量;SVG地图是在用户端动态生成的,无需通过网络传输大量的数据;SVG地图具有良好地可互操作性,用户通过点击地图元素可以方便地连接到其它页面。
例如:当我们在地图上找到某一个餐馆的位置,通过交互式操作,我们可以查询餐馆的价目表,甚至可以进行网上定餐。
SVG电子地图有很广地应用前景,适合制作城市交通图,各类专题地图,小区平面图、建筑平面图、旅游景点平面图等。
1 用SVG表示地图数据
1.1 SVG简介
SVG(Scalable Vector Graphics,可升级矢量图像)是由国际WWW委员会(W3C)组织在2000年8月2日制定的一种全新的开放标准的文本式矢量图形规范。
W3C对SVG的解释是:“SVG是一种使用XML来描述二维图像的语言。
它允许3种形式的图像对象存在:矢量图形、点阵图像和文本。
各种图像能够组合、变换,并且修改其样式,也能够定义成预处理对象。
文本是XML名字空间中的有效字符,这些字符能被作为SVG图像的关键字而存留在搜索引擎中。
SVG的功能包括嵌套变换、路径剪裁、透明度处理、滤镜效果以及其他扩展,同时。
SVG
图像支持动画和交互,也支持完整的XML的DOM接口。
任何一种SVG图像元素都能够使用脚本来处理类似于鼠标单机、双击以及键盘输入等事件。
并且因为同Web标准兼容的缘故,SVG还能够在同一个Web页面里凭着继承自XML的名字空间等特性来完成一系列交互操作。
“
SVG具有如下的特点:
①基于XML标准;②矢量图形;③由文本构成的图像;④灵活的文件格式;
⑤支持交互性:⑥内嵌式动态字体。
另外,SVG实现了图形、图像和文字的有机统一,除了支持HTML中常用的标记,如文本、图像、链接、交互性、CSS的使用、脚本(Script)外,还提供了大量针对图形、图像、动画的特定标记,这就为实现G IS地图提供了可能。
1.2 SVG元素类型
SVG是图形、图像和文字的有机统一,它共提供了六种类型的对象,其中包括矢量图形、图像、渐变填充、滤镜操作、可重用单元和文本。
它对于图形对象可进行组合、添加样式、几何变换、复合等操作。
特征集包括嵌套变换、剪切路径、Alpha蒙版、滤镜效果、模板对象和动画效果,这些都极大地丰富了图形图像的显示效果。
在理论上,这些SVG对象的组合可以构筑任意复杂的图形/图像。
根据功能不同,SVG的主要对象可归为基本要素对象和页面描述功能对象两大类(图1):
图1 SVG的主要对象
SVG中的图形元素是与MAPGIS中的对象相对应的。
以下是SVG的基本形状元素及其属性与MAPGIS中的基本实体的绘图函数及其参数的对照表(附表),其中style属性指定元素样式,如填充色和边框颜色。
该属性是可选的;path元素的绘图指令包括:
∙M/m:移动;
∙L/l:画线;
∙H/h:画一条水平线;
∙V/v:画一条垂直线;
∙A/a:画一条弧线;
∙C/c:画一条三次贝塞尔曲线;
∙S/s:画一条平滑的贝塞尔曲线;
∙Q/q:画一条二次贝塞尔曲线;
∙T/t:画一条平滑的二次贝塞尔曲线;
∙Z/z:关闭路径。
大写字母给出的点是绝对地址,小写字母给出的点是相对画笔当前位置的正负偏移量。
附表
1.3 SVG表示地图数据的优点
由于矢量技术的引入,使得SVG与JPEG和GIF等网络上广泛使用的图形格式相比具备了一些独特的优点,特别适于地图表示的特性有:
(1)可缩放性:作为一种矢量图形,SVG图形的显示尺寸可无级缩放,变化后不影响图形质量,因此可以进行任意分辨率高质量的打印,而不会出现打印位图时常见的“锯齿”效果。
(2)可升级:作为一种纯文本格式的图像,SVG文档很容易被修改和更新,而且在页面运行的过程中,也可对很多部分做即时的修改,其中的图形描述还可重复使用。
另外,图形中使用的文字信息是采用文本对象的方式,可以方便地进行文字的定位,检索和修改。
(3)强交互性:SVG完全支持DOM(文档对象模型),因此SVG中的图形对象完全可以通过脚本语言来接受外部事件的驱动(如鼠标动作),以实现自身或对其他图形对象的控制,制作交互式的图像和动画。
(4)超强色彩控制:SVG图像具有一个l600万色彩的调色板,支持ICC标准、RGB、线性填充和遮罩。
(5)具有跨平台功能:鉴于SVG同XML规范的无缝连接以及标记语言的平台
无关性,从而赋予了SVG跨平台的优点。
(6)开放的标准:作为一个开放的统一标准,SVG不属于任何公司,它是工业界先驱们同心合作的产物,它与HTML/XHTML完全兼容,因此SVG可方便地嵌入网页中,已经有很多公司的软件支持SVG的创建、编辑和浏览。
2 基于SVG的地图生成实现
基于SVG生成地图,可以用如下解决方案:将MAPGIS格式数据转换成SVG,通过SVGDriver生成SVG地图,然后在浏览器中进行显示,体系结构如图2所示:
图2体系结构
(1)MAPGIS数据层:存储MAPGIS地图的数据元素。
(2)SVGDriver层:读取MAPGIS地图的数据,并转换为用SVG格式表示的地图,生成.svg文件。
这一层的实现主要包括地图基本图元的显示和还原显示两部分,基本图元显示和还原显示是
MAPGIS中绘制地图的全部。
其中基本图元显示包括对点、线(直线、折线、弧)、区显示的实现,还原显示包括对子图、线型、填充区显示的实现。
而子图、线型和填充区又是通过点、线和区来生成的,因此整个SVG Driver的工作可以转换为基本图元的显示,这可利用上面的表l来实现,读取MAPGIS的数据后,根据MAPGIS的基本显示函数,对照SVG中的基本形状元素,找出参数与属性的对应关系,然后编写生成.svg文件的代码。
在程序代码编写中还应对照Style属性中的stroke,stroke.width,nll等参数设置相应的画笔和画刷。
经过编码测试我们已经利用SVG实现了MAPGIS中的基本图元的显示和还原显示,那么生成基于SVG的地图就顺理成章了,目前此工作正在进行中。
效果图:下面是基于SVG的地图对象和符号库中的子图在SVGViewer3.0中显示的效采图(图3):
图3 效果图
(3)SVG浏览器:要实现SVG图形的显示,必须要在客户端安装SVG浏览器,Adobe开发的SVGViewer功能强大,显示效果好,是网络上使用最多的,其最新的版本是3.0。
可以到Adobe的网站
(/svg/viewer/install/main.html)上去下载安装即可。
3 基于SVG的地图的应用
(1)用于Web中进行地图的发布。
由于网络带宽与路由等的限制,基于WebGIS的空间信息发布并不十分理想,而且传统的Web语言HTML,即超文本标记语言也不利于表现地理空间数据,这使得WebGIS的发展面临着严峻的技术挑战,基于SVG的地图采用简荦高效的矢量指令,矢量图形的特点是文件的大小与图形复杂程度有关,而与图形的具体尺寸无关。
这样多大的图形,它都只是一个SVG文件,传输到客户端的仅仅是一个SVG页面,因此提高了Web地图发布的传输效率。
(2)用于网页的交互操作。
图片和交互在以前是两个分开的概念。
例如在一个网页中,按钮仅仅是一个图像,按钮的交互部分是由网页中的Script语句来实现。
SVG的出现突破了这个限制,
它支持SMIL (Synchronized Multimedia Integration Language),使得在图片内进行交互成为可能,这是以往的图像所不能做到的。
4 结束语
介绍了一种由W3C制定的网络图形新标准SVG和基于SVG的地图的生成方法,为GIS矢量数据的Web发布地图提供了一种开放的解决方案。
虽然SVG 还存在一些不足(诸如不能支持3维显示等),然而在WebGIS成为未来GIS发展和应用趋势的时期,SVG无疑给业界带来了一种新的高效的开发技术。
从长远来看,SVG技术代表网络矢量化图形的发展方向,我相信:随着IE等浏览器对SVG 的支持,SVG将像Flash动画一般在网络上得到普及,到那时GIS资源将会更好的在互联网上得到传播和使用,为社会创造更多的实用价值。