图1基于J2EE架构的网络三维可视化系统结构图3.1数据库服务器数据的组织与管理远程用户通过
web服务器与位于服务器端的数据库进行联系。这个部分的主要功能包括响应客户端的请求,并把数据输送给远程的用户;多维数据库的管理、组织和提取等功能。目前数字地形和影像数据量随分辨率的提高呈几何级递增,达到几G、甚至几十G字节。很难想象如此庞大的数据能够在Internet上实时传输,因此从某种意义上说三维地形可视化系统实时动态显示的首要问题是如何有效的组织和管理构建三维场景所必须的空间DEM和DOM数据。本系统客户端采用视点相关LOD(LevelofDetails)技术来对数据进行简化。在数据服务器端,对于大数据量的数字地形和影像,实现了视点相关的LOD,分块(Tile)按等级组织的数据结构(HierachicalDataStructure),通常称为“金字塔”结构。本系统以512x512大小DOM为单位,采用金字塔结构来组织数字地形和影像数据。按照金字塔结构来处理后的数据形成一个多分辨率的层次结构,从塔顶至塔底分辨率由低到高变化,相应的分块数则由少到多。这一过程主要在服务器端由独立的数据处理系统完成,主要包括数据分块、合并、压缩、光滑等一系列处理过程。客户端则根据当前的浏览尺度和视点位置请求相关级别和相关位置的数据。在建立分层分块数据简化方式的基础上,为了进一步能提高数据检索和调用效率,还必须建立高效的索引机制以便进行数据快速传输。将同一DOM中的不同层次的块(Tile,包括纹理和Dem数据)进行四叉索引后存入数据库表中的同一条记录中,对于不同记录则通过影像的左上角坐标进行索引。3.2应用服务器服务器可以是web服务器或是应用程序服务器。负责响应客户端浏览器发出的请求,调度数据并将处理优化的数据返回给客户端。应用服务器将数据服务器上的数据同客户端应用进行了逻辑上的隔离,是数据服务器的逻辑模型。这样客户端的应用不必依赖于数据库中[4]的存储结构,使系统功能具有很大的扩展性3.2.1业务逻辑模型应用服务器利用ORACLE的BC4J业务组件,对数据服务器上存储的数据模型化。数据库中每一个表都对应于BC4J中的一个EntityObject实体,每一个实体对象可以有一个或
国家科技基础信息平台项目-测绘科学数据共享试点(2004DKA20230)
多个视图对象ViewObject,视图对象对应于数据表中的几列或所有列。这样其他模块可以通过视图对象和实体对象调用数据库中的数据,而不必直接与数据库打交道。3.2.2数据调度和优化模块当客户端用户进行操作进而发出数据请求,数据调度和优化模块通过Servlet对请求进行有效性验证后,计算出请求的数据范围。如果数据范围相对于上一次请求的范围没有变化,则只返回数据没有变化的标识;若数据范围变化了,则根据当前视窗体及各种环境参数对请求范围内的数据进行裁剪和选择,将变化了的(相对于上一帧影像)各个层次数据块(Tile)返回给客户端。这里的视窗体裁剪采用范围盒等级裁剪算法[5]。3.3客户端应用程序设计系统中的客户端部分是与远程用户交互的接口和界面,它位于远程的用户端。三维地形浏览和操作模块作为JavaApplet直接嵌入
JSP页面中,利用HTTP协议与服务器端进行通讯。根据用户请求向应用服务器发出数据请求,待服务器成功返回所需数据后,将数据解压后放入缓存,并对其进行建模。它的主要功能包括提供与远程用户交互的界面和接口、三维虚拟场景的构造和显示、场景操作和漫游、向服务器端递交请求等。3.3.1浏览与用户操作模块此模块主要包括一个三维浏览和操作窗口。用户可以通过鼠标来进行旋转操作,通过键盘来进行漫游。浏览模块中采用视点相关的LOD算法对其进行数据简化,以提高三维浏览和操作的速度。视点相关则是指根据当前视点的位置来改变空间目标的简化程度。同时由于人的视野和计算机窗口尺寸有限,视点相关可避免对全部数据在最高分辨率下的请求和可视化,即只请求适合于客户机内存操作的数据量。3.3.2数据缓存与建模模块为了适应用户的实时漫游,客户端采用了数据缓冲(cache)的机制来避免已有数据重复请求和传输。通过调整数据库服务器端影像分块的尺寸,很容易使系统响应速度加快。地形建模用Java3d来实现,Java3DAPI是用来开发三维图形和开发基于Web页面的三维应用程序的编程接口。它的数据结构和OpenGL一样,采用的是场景图的数据结构。场景图中的节点都是Java3D类的实例,场景图的根节点是VirtualUniverse如图2所示[6]。用Dem和Dom建模的流程如下:创建Canvas3DDEM数据DOM数据创建SimpleUniverse根节点构建Geometry几何属性构建Appearance纹理属性图2Java3D地形建模流程图4实例分析图3是基于J2EE架构的利用JSP、Servlet、Java3D和BC4J技术实现的网络三维可视化系统的客户端程序界面。在此系统中数据库服务器采用Oracle9i为数据库
管理系统,利用BLOB存储预处理后的数据块(Tile,包括DEM和DOM数据);应用服务器端采用Oracle公司的BC4J组件对库中数据进行模拟并连接后端数据库,通过JavaServlet来调度数据响应客户端;客户端是将JavaApplet嵌入到JavaServerPage,三维浏览和操作程序界面用Java和Java3D来实现。整个系统用Oracle公司的JDeveloper10g进行开发。实验表明,采用J2EE架构、BC4J、JSP、Servlet和java3d技术的纯Java解决方案集成了多种类型数据,不仅支持海量数据的Internet集成,而且实现了基于Internet的地形三维可视化,具有良好的灵活性、可扩展性和安全性,增强了组件的重复可用性,为海量数据的
国家科技基础信息平台项目-测绘科学数据共享试点(2004DKA20230)
获取GraphicsContex3D
创建Shape3D形体节点