gml、svg、vml的比较

gml、svg和vml都是基于xml的可用来描述矢量图形的标记语言,都是xml词表,它们的语法并不难理解,但它们都有各自不同的用途和特点,下面简单介绍一下。

gml(geography markup language)
是基于xml的空间信息编码标准,由opengis consortium (ogc)提出,得到了许多公司的大力支持,如oracle、galdos、mapinfo、cubewerx等。运用gml,封装的地理数据和图形解释是清楚分离的。

gml基于xml用文本表示地理信息
由于gml可看成是xml的一个具体的词表,熟悉了xml就比较容易理解gml。而且随着xml的应用日益广泛,gml也将受益。另外文本比较简单、直观,容易理解和编辑。

gml封装了地理信息及其属性
gml 基于地理信息抽象模型,即空间实体特征及属性封装。地理特征包括一系列的属性和相应的几何信息,一般来说属性由名字、类型和值组成,几何信息由基本元素如 点、线、面、曲线、多边形等组成。目前gml主要局限在二维应用,正扩展到二维半和三维空间以及特征间的拓扑关系。gml允许相当复杂的特征,如特征间的 嵌套。例如飞机场由出租汽车道、飞机跑道等组成。

gml封装了空间地理参考系统
空间地理参考系统是地理信息系统数据处理的基础。gml封装了空间地理参考系统、主要的投影关系等,保证分布式处理的扩展性和灵活性。

gml可以实现地理数据的分布式存储
gml对地理数据的分发是非常方便的技术手段,但其作用不止局限于此,同样可以成为地理数据分布式存储的重要手段。主要的技术工具是xlink和xpointer。
从上边的介绍可以看出gml作为描述空间信息的元语言的一些优点。它只能描述空间实体的矢量信息和属性,具体显示的时候可采用两种不同的途径:
l gml drawà display
l gml transform à svg, vml draw àdisplay
第一种途径需要直接操作gml数据进行分析并显示。
第二种途径是把gml数据转换成相应的图形格式的数据,例如svg,vml及x3d。然后由已经存在的支持这几种图形格式的软件进行显示。下面介绍一下svg和vml。

vml(vector markup language)
是一个最初由microsoft开发的xml词表,现在也只有ie5.0以上版本对vml提供支持。使用vml可以在ie中绘制矢量图形,所以有人认为vml就是在ie中实现了画笔的功能。下面介绍一下vml的优点:
基于xml标准
xml是公认拥有无穷生命力的下一代网络标记语言, vml具有先天的优势,它的表示方法简单,易于扩展等等。
支持高质量的矢量图形显示
vml 支持广泛的矢量图形特征,它们基于由相连接的直线和曲线描述路径。在vml中使用两个基本的元素:shape和group。这两个元素定义了vml的全部 结构;shape描述一个矢量图形元素,而group用来将这些图形结合起来,这样它们可以作为一个整体进行处理。
vml规范包括大量的支持多种不同矢量图形特征的元素。下面是vml的预定义图形元素:
l shape 
l path
l line 
l polyline
l curve 
l rect
l roundrect
l oval
l arc
l group
由文本构成的图像,并可集成到html
由 于vml使用简单的文本来表示图像,这样就可用很少的字节来表示比较复杂的图像。vml与html兼容,通过在html中声明vml命名空间并声明处理函 数,就可以和其他html元素一样使用vml元素,在客户端浏览器显示图像。vml标记里面可以定义dhtml大部分属性和事件,比如说 id, name, title, onmouseover 等等。
支持交互与动画
但vml的功能不只是绘图,他还可以在图形中嵌入文本,并可实现超链,还可通过脚本语言实现一定的动画功能。vml赏析

svg(scalable vector graphics)
svg 是一种基于xml的开放的矢量图形描述语言。svg图像是与xml1.0兼容的文档,svg元素是指示如何绘制图像的一些指令,阅读器(viewer)解 释这些指令,把svg图像在指定设备上显示出来。使用svg可以在网页上显示出各种各样的高质量的矢量图形,支持很多您想象得出的功能:几何图形、动画、 渐变色、滤镜效果等。最关键的是,它也是完全用普通文本来描述的!也就是说,这是一种专门为网络而设计的基于文本的图像格式。
svg是对pgml和vml的一种综合,所以vml的优点也就成为svg的优点,例如:
基于xml标准
高质量的矢量图像
由文本构成的图像
我 们可以不用任何图像处理工具,仅仅用记事本就可以生成一个svg图像。这对于图像处理的工作者来说可能会感到不可思议。其实仔细想想也可以理解,矢量图像 一般是以算法指令来描述,建立在文本基础上的svg图像中所有的描述语句都可以直接观察到,所以也非常容易进行二次修改与更新,"可升级"的特点在这里可 以得到恰当的反映。
另外,与vml相比svg还有一些优点:
灵活的文件格式
svg可升级的特性不仅仅表现在二次修改方面,还表现 在另外很多地方,包括这里介绍的灵活的文件格式。在以前的图像中,文本都作为位图而保存于图像中,图像形成以后不能单独对文本进行修改;在png格式中这 一点有所改进,文本可作为一个独立的层存在;svg更灵活地扩展了图像的文件格式,它由三个部分组成:矢量图形、位图和文字。这样svg不仅仅可以应用矢 量图像和文字对象,同样可以纳入位图,可以制作出任何其它格式图像能达到的效果。由于文件格式是文本形式的,可以很容易地在以后任何时候进行修改。而且在 页面运行的过程中,也可以对很多部分做即时的修改,其中的图形描述还可以重复使用。
支持交互和动画 
svg支持smil(synchronized multimedia integration language),使得用户可以自由的同svg中的元素完成一些交互的动作,从而完成既定的目标,这一点在目前单独依靠图片是完成不了的,需要由网页中的脚本语句来实现。 
支持字符查找 
查找"图片"中的字符,在svg中成为可能。而这在其它格式的图片文件中则是不可能的。
支持xlink 和xpointer 
   这样就可以在svg文档之间制作超级链接。
svg 作为w3c组织正式推荐的图像格式,拥有众多的支持机构。像adobe公司已经宣称将在推出的adobe图像处理套件如illustrator、 photoshop、golive和cyber studio中集成svg的全部功能,并且还提供netscape navigator和ie的插件,以 便使其能够直接支持svg文件的浏览。netscape和microsoft公司也已经开始进军svg领域,这标志着未来的网络浏览器将会内置对svg文 件的支持功能。
总结
 gml、svg、vml都与矢量图形有着密切的关系:gml在表示实体的空间信息的同时加入了实体的其他属性信息, 是表示实体的空间信息和属性的编码标准,但它并不支持直接显示图形。而vml和svg是在表示图形的矢量信息同时加入了图形的显示信息(即以什么样的样式 显示矢量图形),是显示矢量图形的两种比较好的格式。相比之下,svg是综合了vml的优点后推出的,是国际标准,它比vml具有更多的优点,也有更广阔 的前景。但由于vml有ie的支持,而svg要想在浏览器中显示就需要安装插件,在这一点上,vml优于svg。

你可能感兴趣的:(svg)