| 文章索引 |
|---|
| 基于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):
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的创建、编辑和浏览。