杨文森,赵前胜,陆世东
(1.湖北省土地规划勘测院,湖北 武汉 430071;2.武汉大学 测绘学院,湖北 武汉 430079)
在我国各个部门和行业中,已有大量的GIS数据积累。但由于缺乏有效的管理和互操作技术支持,这些数据难以共享利用。特别是由于目前GIS软件厂商较多,同一部门内部根据需求可能采购了不同的桌面GIS,使得部门内部也存在数据异构及互操作问题。目前研究互操作的文献较多。王东艳[1]总结了2种互操作方式:基于COM 或CORBA 的API函数或SQL的接口规范和基于Http(Web)XML 的空间数据互操作实现规范;龚健雅[2]讨论了基于Oracle Spatial API函数的空间数据互操作模型。据笔者调研,目前还没有文献讨论既考虑效率又兼顾广泛适应性的互操作模型。针对上述互操作实际情况,本文提出了一种新的基于Oracle Spatial的空间数据集成互操作模式,即在对互操作效率要求较高的部门内部采用本地局域网互操作模式,而对于部门或者行业之间采用基于GML的互联网互操作模式。
该设计同时满足部门内部高效的互操作模式以及部门外部更广泛的互联网互操作模式,采用3层结构设计:数据库服务层、应用服务层和客户端,如图1所示。 数据库服务层采用Oracle Spatial空间数据库平台,由于不同组件GIS平台的元数据的不同,所以将不同数据平台的数据分别录入到Oracle Spatial中不同的表中;应用服务层主要包括元数据转换映射服务和GML数据转换服务,元数据转换映射服务主要提供基于局域网Oracle Spatial API的数据互操作服务,GML数据转换服务主要负责将Oracle Spatial空间数据转换成GML格式数据;客户端可分为2种:一是本地C/S客户端,即本地互操作模式,指在同一局域网内部,通过不同的GIS桌面程序实现统一对Oracle Spatial数据库的读写操作,即实现不同桌面GIS的互操作。另一种是Internet客户端,即互联网互操作模式,利用GML数据转换和OGC标准服务接口,为Internet网上的不同客户端提供GML服务,客户端使用GML解释器或者直接将GML转换成VML在浏览器端浏览,或者直接将GML数据嵌入应用。该框架结构最大的优点在于使得互操作的适应性和效率得到统一,将两种互操作类型集成在统一的服务中,也使得服务的更新和升级变得简单。
图 1 基于Oracle Spatial的空间数据互操作框架
根据不同桌面GIS在Oracle Spatial数据库中存在数据异构的原因,本文提出运用元数据转换映射的方式来解决不同桌面GIS对同一Oracle Spatial数据库的互操作。根据不同桌面GIS软件在Oracle Spatial中的元数据信息与结构的不同,通过添加彼此在Oracle Spatial中的空间元数据,从而实现双方对于Oracle Spatial空间数据的互操作,如图2所示。此模式的关键在于元数据转换映射服务,其映射服务介于所有桌面GIS之间,即映射方式根据需要进行互操作的桌面GIS类型数量,需要实现Cn2种映射转换模式,其中n表示需要进行互操作的桌面GIS类型数量。这种结构的优点在于可以充分利用数据库通用API函数实现不同GIS元数据之间的映射转换,可以最大限度地保证数据转换之间的损失。
图2 本地互操作模型结构图
互联网互操作模型以GML为基础,实现WFS标准接口规范,通过WFS请求和查询Oracle Spatial空间数据库,从而在更广范围内实现基于互联网的要素层异构、跨平台互操作(见图3)。客户端用户请求参数经过分析模块转化为SQL文档,实现对数据库访问。数据库输出查询结果:空间对象和属性。空间对象的坐标系、投影、几何类型、空间坐标和其他相关信息等经语义转换模块同属性数据一同生成GML文档,经服务器发给客户端。
图3 基于GML的互联网互操作模型结构图
对于本地互操作模型,本文以ArcGIS、MapInfo和Autodesk Map 3种桌面GIS为例实现基于元数据转换映射服务的互操作模型;同时以ArcGIS Server平台为例实现基于GML的互联网互操作模型。
根据3种桌面GIS访问Oracle Spatial数据库的机理,使用Oracle OCI接口和数据库触发器编程实现本地互操作模型,如图4所示。
图4 本地互操作模型实现流程图
1)MapInfo对Autodesk Map和ArcGIS导入数据库的空间数据的访问方式:在mapinfo_mapcatalog表中加入一行Autodesk Map和ArcGIS导入数据的元数据信息的注册信息。
2)ArcGIS对MapInfo和Autodesk Map导入数据库的空间数据进行访问,只需在导入数据的同时注册sde.layer、sde.table_registry、 sde.column_registry、sde.geometry_columns和 sde.spatial_references。
3)Map对MapInfo和ArcGIS导入数据库的空间数据的访问步骤如下:首先在数据表中增加实体符号和层名等公用信息字段,并且针对表中的数据添加各字段相应的内容。对数据表的结构和内容调整完成后,然后将数据表在Map的5个元数据表中注册,注册完成后,Map可实现对数据表的访问。
基于GML的互联网互操作模式实现流程如图5所示,采用3层结构。该模式实现了实时动态交互操作GML数据。客户端可以在Web上实时存取和检索Oracle Spatial空间要素层地理数据:①客户端向服务器发出一系列请求,服务器接收请求并分析这些请求,得到相应数据库中的数据;②服务器将GML格式的请求结果返回给客户端;③客户端显示GML数据并且执行GIS分析。
图5 基于GML的互联网互操作模型实现流程图
本文根据互操作的实际需求,提出了基于Oracle Spatial的集成互操作模型。对部门内部采用基于元数据转换映射的方式,高效实现了不同桌面GIS的互操作;对部门或者行业之间采用基于GML的空间数据互操作模式,满足部门或者行业之间更广泛的互操作需求,从而实现了兼顾高效性和广泛适应性的互操作模型。
[1]王东艳,龚健雅. 一种GIS互操作模型研究[J]. 武汉大学学报:信息科学版,2005,30(3):218-221
[2]龚健雅,贾文玉,陈玉敏,等. 从平台GIS到跨平台互操作GIS的发展[J]. 武汉大学学报:信息科学版,2004,29(11):985-989
[3]王紫生,边馥苓.利用数据分解与合成法实现基于XML的空间数据转换[J]. 武汉大学学报:信息科学版,2005,30(3):227-229
[4]檀丁,李明峰,陶虹,等. 面向服务的3D WebGIS异构系统框架研究[J].测绘通报,2011(10):65-67
[5]Zhang Peng. The Roles of Geography Markup Language (GML),Scalable Vector Graphics (SVG) and Web Feature Service (WFS)Specifications in the Development of Internet Geographic Information Systems (GIS) [J]. Journal of Geographical Systems,2004(6):95-116
[6]Chang Y S, Park H D. XML Web Service-based Development Model for Internet GIS Applications[J]. International Journal of Geographical Information Science, 2006(20):371-399
[7]Harvey F, Tulloch D. Local-government Data Sharing:Evaluating the Foundations of Spatial Data Infrastructures [J].International Journal of Geographical Information Science,2006(20): 743-768