ITPub博客

首页 > 应用开发 > IT综合 > GML文档到SVG文档的转换

GML文档到SVG文档的转换

原创 IT综合 作者:allenjiang 时间:2007-01-23 13:48:03 0 删除 编辑

尽管GML适用于地理信息交换和共享,但它并不是为图像显示而设计的,所以GML文档是无法以图像的形式显示给用户的。要将地理时空信息发布出去,就要将GML文档转换为合适的图像格式文件。此数据发布组件采用SVG作为系统的地理信息发布格式,因此需要将GML文档转换为SVG文档。

[@more@]

GML文档向SVG文档转换,是通过将编写好的样式表(XSL)和GML源文件,传递给XSLT处理器进行执行实现的。用户查询是变化的,相应的GML文档也是变化的,则GML文档向SVG文档转化时所用的样式表也是变化的,所以样式表应该动态生成。因此,在中介器上有一个元数据数据库,每一个元数据对应一个样式表,如元数据LineString对应一个名为LineString.xsl的样式表。当GML文档向SVG转化时,先对GML文档进行遍历,将出现的元数据所对应的样式表集成,生成一个新的样式表,根据这个样式表将GML文档转化为SVG图像,再将SVG图像返回给用户。

创建样式表,最主要的问题就是如何定义模板。根据源文档的结构,在样式表中寻找匹配的模板片断,进行相应的转换。

下面是XSL样式表文件中如何将点元素进行转换的代码片断。

这里首先定义了pointWidth,将其定义为5GML中有point元素,而在SVG中没有point元素,所以在这里我们用5个象素的circle来代替point。可以看到,程序首先找到Point节点,将其坐标XY值读入变量x0y0中;然后输出一个上下文节点元素circle,并设置其属性cx的值为变量x0的值,设置其属性cy的值为变量y0的值,设置其属性r的值为pointWidth的值。通过此段XSL片断,就可以将GML规范中的point转换为SVG规范文档中的circle。其它的类似。GML元素到SVG元素的对应关系如下表所示:

GML元素

SVG元素

Point

circle

MultiPoint

grouped circles

LineString

polyline

MultiLineString

grouped polylines

Polygon

path

MultiPolygon

grouped paths

GML元素转换到SVG元素的对应关系

这里只是一个最简单的说明转换过程的例子,如何将GML文档完善的转换为SVG文档,需要考虑的问题还非常的多。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/58646/viewspace-892732/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    2
  • 访问量
    10072