APP下载

基于GML的空间数据发布服务

2013-09-28童凌飞

地理空间信息 2013年1期
关键词:空间数据切片文档

童凌飞, 王 刚 ,关 颖

(1.江西理工大学 建筑与测绘工程学院,江西 赣州 341000;2.广东省国土资源测绘院 ,广东 广州 510500)

随着Internet技术的不断发展,尤其是吸纳网络服务模式和互操作标准以后,我们可以利用Internet在Web上发布和出版空间数据,提供地理信息服务,为用户提供空间数据浏览、查询和分析功能的WebGIS。利用WebGIS来发布空间数据,能够最大限度地为用户提供更加直观、完善的空间数据资源[1]。

1 空间数据发布存在的问题

互联网与地理信息系统的结合能有效改善地理空间信息的获取、共享、发布与分析。采用现有技术实现的WebGIS系统虽然能够实现所需的功能,但由于各基础平台之间相互封闭、独立,导致一个系统所产生的地理空间数据不能被另一个系统所使用;同样一个系统的服务功能也不能为另一个系统使用,这种状况的产生严重阻碍了空间数据的共享与互操作。GML技术为解决这一问题提供了一种有益的思路[2]。因此,开放地理信息系统联盟(Open GIS Consortium,OGC)制定了基于XML的独立于任何厂商和任何系统平台的地理信息编码规范——地理标识语言(Geography Markup Language,GML)[3],用于地理信息的传输、存储和发布。

2 改进的空间数据发布体系

2.1 空间数据发布模型中的关键技术

2.1.1 GML

GML是为了解决不同来源、不同内容、不同数据模型以及不同数据格式的空间数据的共享与互操作而由OGC制定的一个基于XML和OpenGIS“简单要素”(Simple Feature)数据模型的空间数据交换格式。其主要用于空间数据的编码、转换和传输,以一种互联网上容易共享的方式来描述、表达地理要素的空间与非空间属性[3]。

GML已经被公认为GIS数据共享和互操作的技术标准,它将地理数据与表现完全分开,可实现业务逻辑服务链,而且支持复杂的数据分布关系,能够实现复杂的链接关系,为实现在WebGIS环境下地理空间信息的共享和互操作、跨平台数据访问和在分布式体系中运作提供了强大的支持。但是,由于在GML开发过程中严格遵循数据和表达分离的准则,所以没有构建GML数据描述和可视化的机制,正是由于在表达空间信息方面的不完善才使得它需要与SVG结合互为补充,使地理空间数据的传送和显示变得简单有效。

2.1.2 SVG

可缩放矢量图形 (Scalable Vector Graphic,SVG)是W3C制定的一套基于XML的用于描述二维矢量图形和矢量/点阵混合图形的标记语言规范。SVG的功能包括嵌套变换、路径剪裁、透明度处理、滤镜效果以及其他扩展[4]。SVG的纯文本特性, 使它具备了像文字信息一样的可检索性, 从而实现了对Web图形的检索。同时SVG图像可以包含支持交互的脚本代码,通过事件来控制脚本的执行。SVG中大多数元素(尤其是可视化元素)都支持诸如onClick事件和onMouseover事件,通过编程来实现和用户的动态交互,以增强显示层的交互能力。

SVG的优点是很明显的,可任意放大缩小而不会影响地图图像的质量;SVG文本中的信息可以很容易地被查询和修改,实时地更新图像内容;SVG文件较小,易于在Internet上快速传输和下载。当然SVG也有缺点,因为它主要是用来浏览矢量数据的,所以目前的SVG不支持拓扑结构、地理坐标系统以及3D数据。但是,SVG的提出对充斥着大量图形图像等多媒体信息的互联网来说应当是一个解决网络带宽日益紧张的方案,所以OGC在定义WMS时可把SVG文件作为Web地图服务的一个基本的文件格式[5,6]。

2.1.3 Ajax

Ajax(Asynchronous JavaScript and XML)包含了JavaScript、XHTML、CSS、DOM、XML、XSLT 和XMLHttpRequest 等7种技术[7]。它主要通过CSS、XHTML、DOM来表现网页的内容和样式;通过XMLHttpRequest对象进行客户端与服务器端的异步通信;通过JavaScript处理相关业务逻辑。这种在设计和编程上将内容、表现、业务和数据分层的开发模式给用户带来了一种全新的交互体验,提高了Web的应用性能。在基于Ajax的Web应用模式下,在用户向服务器提交请求的同时,Ajax引擎在后台异步运行,用户无需等待服务器的处理而仍然可以对网页的其他部分进行操作,当请求的数据返回时,只需对网页中部分内容进行必要的修改处理就能呈现给用户,不用重新加载整个网页,从而减少了网络的延迟,使用户的交互连续顺畅。

2.1.4 Oracle Spatial

Oracle为空间数据提供了一种完全开放、高度集成的体系结构——Oracle Spatial。Oracle Spatial支持OpenGIS规范,它可以把复杂的地图对象作为一个对象存入一个关系数据库表的一列中,相关的属性数据存储在这个表的其他列中,同时建立空间数据索引,从而实现空间数据和属性数据的一体化存储和管理,也使得Oracle Spatial直接对空间对象的查询成为现实。Oracle Spatial支持对空间对象的两步查询机制,可以对空间对象实现高效的查询。此外,结合SQL语句可以实现对空间数据的查询和其他复杂的空间分析功能,在发布体系中将会提高对空间对象的管理能力。

2.1.5 地图切片技术

当前主流的WebGIS应用,如GoogleMaps、E都市等都采用切片技术将一整幅地图图像分割成许多小的地图切片平铺在客户端制图区域。利用地图切片组织地图减轻了网络负担,增强了用户体验。采用Ajax技术后使得每个地图切片会自行从服务器上异步下载到客户端,客户端并不需要一次性载入所有切片,仅下载可见区域内的切片,而且,缓存它们后不用重复下载,从而减少了用户的等待时间,改善了用户体验;同时采用地图切片技术也减轻了服务器的负担。

2.2 空间数据发布服务的模型

单纯的瘦客户端模式和胖客户端模式都存在着明显的不足[1]: 对于瘦客户端,当客户端需要频繁地传输空间数据时,系统的执行效率将会受到带宽和网络流量的制约,降低了系统的执行效率;对于胖客户端,系统的执行效率主要受到客户端运算能力的限制,当处理需求和处理能力之间发生矛盾时,整个系统的执行效率也将大大降低。因此,一种比较理想的方法是将2种模式的优点结合在一起,构成一种混合模式来解决这些问题。首先,考虑到传统GIS软件采用混合结构模型来存储空间数据的固有缺陷,以及商业WebGIS平台受网络带宽的限制影响空间数据的高效传输,其次考虑到要充分利用GML编码在数据交换、传输、集成和互操作方面的优势,再考虑平衡客户端和服务器端的负载,以及解决海量地理信息的访问而造成空间数据库并发访问的巨大压力,本发布模型加入了对基于分级缓存地图的切片式地图的OGC服务方式的支持,结合GML、SVG、WMTS、WMS、WFS等应用提出了一个由显示层、业务逻辑层、OWS服务层和数据存储层组成的多层次的空间数据发布服务体系。模型系统结构如图1所示。

图1 空间数据发布服务模型

发布模型的显示层由用户浏览器和Ajax引擎组成;业务逻辑层由Web服务器和GIS Web服务器组成;OWS服务层包括WMS/WMTS服务、WFS服务、WCS服务以及其他的空间数据处理服务;数据存储层由GIS空间数据库、矢量栅格数据文件和切片地图缓存文件组成,各自的功能分别阐述如下:

显示层:它负责用户的请求和数据的输入,实现与业务逻辑层的连接通信。它可以显示图形数据和属性数据,响应用户的交互操作请求,可提供空间查询功能,支持对地理对象的访问,负责与业务逻辑层通信。

业务逻辑层:业务逻辑层的Web服务器是显示层进入服务层的入口。Web服务器为客户端提供地图数据访问与转换接口,而GIS Web服务器主要响应Web服务器的数据请求,协调与Web服务器的交互通信;组织访问数据服务器端的空间数据。根据Web服务器的空间数据服务请求通过SOAP或RESTful Web Services调用OWS服务层中相应的服务模块。

OWS服务层:为业务逻辑层提供了OGC服务模块的服务接口,以方便服务的访问。为了形成较为完善的系统功能,各个服务模块需要相互协作通信。为响应GIS Web服务器的服务请求,相应的服务模块通过各自的数据源API访问空间数据库和相关数据文件,提取所需的数据并编码成GML的格式回传给服务模块,服务实现后部署到GIS Web服务器上,对外提供地理信息服务。

数据存储层:它是整个系统结构的数据源,存储着地理信息数据,包括属性数据和空间数据。对于XML编码的数据,可以通过XSLT将其转化为GML文档;对于非XML编码的数据,可以通过GML转换引擎直接转换为GML。由此可见,GML是实现多源异构空间数据共享的关键所在。同时数据层还提供基于瓦片式地图服务的切片地图缓存文件,为OWS服务层中的WMS/WMTS提供数据源。此外,数据层还支持来自服务层对数据的更新和删除等操作。

2.3 空间数据发布服务模型的工作机理

首先在用户请求GIS服务之前,OWS服务层的各项服务都事先通过GML编码的方式注册到服务注册中心,经由服务注册中心向显示层公开发布,显示层通过Ajax引擎进行服务的发现搜索和绑定,向服务层请求所需的服务。发布体系中,用户操作浏览器可以通过Ajax引擎或者直接向Web服务器发送XMLHTTP或HTTP请求。

如果浏览器发出的是普通的HTTP请求,Web服务器收到请求后,对于非GIS功能的请求,服务器独立处理完成后再将处理结果返回显示层;对于GIS功能的请求,Web服务器经过处理向GIS Web服务器发出空间数据服务请求。GIS Web服务器对该请求进行分析处理:当空间数据请求是一般的空间数据请求时,GIS Web服务器直接将向数据存储层发出请求,数据存储层接受请求并做出响应;当空间数据请求是OGC形式的服务时,GIS Web服务器将通过SOAP或RESTful Web Services调用OGC服务,通过服务层每一个服务模块提供的服务接口访问相应的服务模块,再由服务模块各自的数据源API访问数据存储层以获取数据源信息。数据层以GML/XML编码文件返回给OWS服务层的对应的服务模块,服务模块在完成服务之后再交给GIS Web服务器做分析处理,利用XSLT技术将GML文档转化成SVG文件后,返回给Web服务器,Web服务器再将请求结果以SVG文档的形式返回给浏览器呈现。

2.4 空间数据发布服务的关键步骤

上述模型的工作机理涉及到的关键步骤有:显示层浏览器的地图浏览,业务逻辑层与显示层之间的通信,对GML文档的解析,其他GIS数据格式到GML文档的转换,GML到SVG的转换等。

1)GML空间数据转换。基于GML的空间数据转换原理就是将多源异构的空间数据利用GML的统一空间数据模型来描述[8],所以应将数据层中其他GIS格式的数据转换成GML格式,保存到文件流中,以便数据服务层能对GIS应用服务器层数据请求做出响应。解决空间数据向GML格式数据模型转换的关键是对空间数据类型的解析,其实质是解析出其他数据格式(如shapefile)的地理要素信息,根据它与GML几何模型之间的对应关系构建GML数据模型。

2) 业务逻辑层与显示层之间的通信。它是通过GML文档来实现的,需要定义一个用于传输信息的基于XML的通信协议,通过在业务逻辑层与显示层之间的请求和响应来形成通信。客户端与服务器端的通信也可以用SOAP协议,客户端通过SOAP协议来调用服务器的服务组件接口。

3)GML到SVG的数据转换。GML文档实质上是包含空间信息的XML文档,基于上述分析可知,要将地理信息发布出去,就要将GML文档转换为合适的图形格式文件——SVG。因为SVG也是基于XML的,所以GML文档到SVG的转换实质上是将一种格式的XML文档转换成另一种格式的XML文档[9]。将GML数据转换为SVG数据要实现坐标转换、空间数据信息转换和图层转换,可以使用XSLT来转换。XSLT定义了一套规则,用以描述GML元素和SVG元素之间存在的对应关系,这套规则就是XSLT样式表,XSLT处理器按照这些规则编辑GML源文件“**.gml”,再实施转换,将GML元素中的几何模型转换为SVG图形。利用XSLT将GML几何模型对象转换成SVG对应的对象的过程如图2所示。

4)SVG与显示层的动态交互。尽管SVG具有很强的图形交互功能,可满足一般图形操作的需要,但对于地图的显示和操作,还需要对其功能进行扩充。由于DOM提供了对SVG文档进行操作的接口,因此,就为功能的扩充奠定了良好的基础[9,10],但要利用这些接口来操作SVG文档中的元素必须使用JavaScript脚本语言。将JavaScript脚本嵌入到SVG地图文档中,通过改变SVG文档中对象的属性、响应对象的时间以实现用户与地图之间的交互。除了实现一般数字地图的显示功能之外,采用JavaScript还可以进行SVG地图的图层控制、地图坐标的显示、地图投影的变化以及地图对象的属性查询等,另外通过外部脚本还可完成与业务逻辑、数据库、Ajax引擎调用相关的操作。

图2 GML对象转换成SVG对象

3 结 语

本文通过分析空间数据发布中存在的问题,提出了一种改进的基于GML的空间数据发布模型,将SVG和GML应用于网络的空间数据发布,克服了原有空间数据存储、矢量数据的传输和显示问题,是空间信息系统发布的新发展方向;同时充分考虑了发布体系结构的完善性,加入了OGC形势的WMS、WFS以及切片地图等服务模块。由于地理空间数据的复杂性,本文还有许多不成熟的地方,如在空间数据发布过程中,还存在网格理论、多序列特征数据的发布问题;为了实现空间信息网上分析功能,还需要解决其在可视化过程中的拓扑关系和坐标系定义等。

[1]陈腾.基于WebGIS的空间数据发布技术研究[J].测绘与空间地理信息, 2010(33):46-48

[2]张峰,崔晓健,王伟,等.基于GML的地理空间数据交换技术研究[J].地理空间信息,2009,7(1):78-81

[3]Open Geospatial Consortium Inc.OpenGIS Geography Markup Language(GML) EncodingStandard Specification 3.2.1[EB/OL].http://www.opengeospatial.org/standards/gml.2007-08-27.

[4]罗庆洲.基于GML的WebGIS理论与实践探讨[D].上海:华东师范大学,2004

[5]Tsoulos L, Spanaki M, Skopeliti A.An XML based Approach for the Composition of Maps and Charts[A]// Proceedings of the 21st International Cartographic Conference (ICC) [C].Durban:The International Cartographic Association(ICA),2003

[6]Lehto Lassi.Multi-purpose Publishing of Geodata in the Web[EB/OL].http://www.ginorden.org/konf/getpaper.php?ID=67,2002-09-12

[7]芦康平.基于WebGIS的空间信息服务实现方法研究[D].西安:西安电子科技大学,2009

[8]于雪芹,李建松,钱自红,等.基于GML的空间数据转换方法研究[J].地理空间信息,2005,3(5):23-25

[9]刘旭军,关估红.WebGIS应用中GML文档到SVG的转换[J].计算机应用,2004(2):157-159

[10]周文生.基于SVG的WebGIS研究[J].中国图像图形学报,2002(7):693-698

猜你喜欢

空间数据切片文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
GIS空间数据与地图制图融合技术
网络切片标准分析与发展现状
基于RI码计算的Word复制文档鉴别
基于SDN与NFV的网络切片架构
肾穿刺组织冷冻切片技术的改进方法
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
冰冻切片、快速石蜡切片在中枢神经系统肿瘤诊断中的应用价值比较
网格化存储的几项关键技术分析