何兴富
(重庆市勘测院,重庆 400020)
近年来,各地方管理部门加大对三维地理信息系统的建设,市场上也出现大量三维地理信息平台和应用系统。随着各城市“三维化”的不断深入,每年都在产生数以T计的城市三维数据模型数据。以重庆市为例,2010年已基本完成上百平方千米的建城区三维建模工作。然而,数字城市的建设还远远没有跟得上网络发展的需求。一方面,每个城市都存在大量的运行于单机或局域网上的三维仿真系统,这些系统之间缺乏互通机制。另一方面,三维模型数据量大的特性也对分布式三维地理信息系统建设提供了新的挑战[1]。
面向网络应用的分布式三维仿真系统必然是城市三维仿真系统建设到成熟阶段后的一个重要发展方向,也是数字城市服务于社会大众的必然需求。本文以TerraGate组件为基础,介绍相关组件的基本功能,设计并实现一套分布式三维仿真系统原型,实现网络调用三维地形模型、二维矢量图层和三维精细模型等数据源。
TerraGate系列工具用来满足Skyline的3D技术客户端和服务器数据传输需求。TerraGate能够将地形、特征或地图数据传输到TerraExplorer客户端和WFS/WMS客户,在TerraExplorer用户之间提供协作会话功能并提高网站整合能力[2]。
TerraGate包含多个组件,本文需要用到的组件包括:
(1)Terrain Server地形服务组件。从地形缓存数据集(MPT)传输三维地形数据或通过DirectConnect扩展直接传输源数据。通过它,可以从分布于网络上的主机中以读取三维地形数据。其特点包括:
①通过内部网络或互联网进行三维地形的传输;
②对低宽带的情况能够进行优化;
③采用TCP/IP协议,支持SSL(Secure Socket Layer)协议;
④充分利用多核处理器服务器的硬件优势;
⑤高效的海量数据处理能力,地形数据的大小只被磁盘媒质所限制。
TerraGate Terrain Server(TS)支持分布式部署,即能够从若干个服务器上共同传输一个单一的3D工程。每个TS作用于工程中其负责的部分。一个TS将其他TS上的数据做成缓存,使运行效率更好。
(2)Spatial Framework Services(SFS)组件。基于OGC规范设计,用于提供WFS和WMS服务。其特点包括:
①可以从Shape文件、Oracle Spatial空间数据库和ArcSDE读取矢量数据;
②在服务器端创建一个Cache,用于高效的读取流数据,并且可以高效的处理多用户访问需求;
③用流方式读取标准的WFS或者混合的WFS,使得数据更加安全;
④可以无缝集成服务器集群,提供可以升级的解决方案;
⑤每个层的Cache都有三个不同的细节层次,以达到最优。
系统采用基本的模型-视图-控制器(MVC)三层体系结构。基于TerraGate组件,可以实现对网络三维地形模型和矢量图层的调用,基于网络传输和数据安全等问题考虑,需要对数据连接进行一定的封装,构成模型端。视图设计使用基于Office 2007风格的控件库生成标准Windows窗体的用户界面,由工具栏、视图窗口、状态栏、图层控制等部分组成。控制端对应于业务逻辑层,负责数据的输入输出和系统的基本业务逻辑的实现。系统结构如图2所示。系统分层简要介绍如如下:
(1)在数据访问层上,通过对数据访问接口的封装,可以实现对互联网、局域网或本地数据的访问。其中:
①矢量数据库按数据提供方的不同可以是由TerraGate提供的SFS数据源、基于OGC规范构建的WFS矢量数据源、ArcSDE数据等。
②地形数据库提供三维地形模型,根据选择的基础三维引擎不同而不同。在本系统中使用TerraExplorer专用的MPT数据库,由TerraGate提供地形数据服务。
③Web服务器用于提供精细三维模型的数据文件存储和访问。将精细三维模型发布到Web服务器下,并建立索引,由三维引擎进行访问。
④其他数据服务器提供系统所需要的其他类型数据。
图2 系统分层结构图
⑤本地数据指存储在本地的各类数据类型,一般包括业务逻辑层所必需的数据。
(2)业务逻辑层在基础三维引擎的支持下,实现系统必须的基础分析功能,如空间定位、空间量算、空间分析、专题分析和数据输入输出等GIS功能以及用户角色控制、系统配置等其他业务逻辑的实现。
(3)视图层负责显示用户数据和响应用户操作,其核心是基础三维引擎,在本文中使用的是TerraExporer的三维显示组件。
在系统框架设计的基础上,本文实现了一个基于TerraExplorer的分布式三维仿真系统,界面如图3所示。
矢量数据使用SFS服务提供,通过数据库连接配置为系统提供连接参数。三维模型使用IIS发布,在网络端建立模型索引表,通过网络方式加载。数据配置部分代码如下所示。
图3 分布式三维仿真系统原型
作为一个原型,系统实现了查询定位、空间分析两大类型分析功能和系统视图控制。在场景中漫游时,根据当前位置实时计算需要加载的模型列表,将分层模型下载到本地缓存中,由三维引擎对场景进行更新和LOD替换,相关参数可根据网络情况手工调整。所有分析功能在本地完成,功能涉及的数据交换由数据访问层实现,功能无需直接访问数据本身。
TerraGate的网络组件为发布三维地形数据、矢量数据和影像数据提供了完整的解决方案。在此基础上,结合一定的数据访问封装,即可实现安全、高效的基础地理数据访问。三维精细模型使用Web服务器进行发布和管理,结合三维模型的LOD算法,即可实现相对流畅的网络调用。
以上思路为分布式三维仿真系统的建设提供了一个可实现的解决方案,本文针对该解决方案进行系统设计,并实现了一个分布式三维仿真系统的原型。在实际测试中,局域网环境下可以实现流畅运行。互联网环境下,三维地形模型和矢量数据的访问基本流畅,精细三维模型因模型大小的不同而有所差异。一般来说,单个模型的三层LOD模型文件大小从 10 K~1000 K不等,在模型密集区域会出现较长时间的加载等待。
网络速度仍然是制约三维仿真系统向网络发展的一大瓶颈,本文仅提供了一个可行的思路,在三维精细模型文件较小的情况下可以较好地运行。网络传输优化、模型流式访问[3]和动态LOD等都是下一步需要研究的问题。
[1]侯守明,潘亚锋,沈志广等.基于协同设计的三维模型数据网络传输研究[J].微计算机信息,2010(6)
[2]东方道迩.TerraGate介绍[OL],http://www.east-dawn.com/pubnews/213971/20090304/1213988.jsp
[3]周云虹,李志方.流式与非流式传输技术分析[J].现代计算机,2002(3)