当前地理信息系统技术仍以二维信息为主,比较而言, 三维地理信息系统技术可以使信息的表现更真实、丰富、具体,而下一代GIS技术的一个主要特点也是支持“数字地球”或“数字城市”概念的实现,从二维向三维发展,从静态数据处理向动态发展,具有时序数据处理能力,因此三维地理信息系统技术与无线通信技术的结合将是未来地理信息技术发展的必然趋势,也将成为未来数字城市建设技术的必然选择。
三维GIS是模拟、表示、管理、分析客观世界中的三维空间实体及其相关信息的计算机系统,能为管理和决策提供更加直接和真实的目标和研究对象。三维 GIS是二维GIS技术的延伸和扩展。
基于三维地理信息系统技术,能够实现城市地质灾害相关数据的的数字化、网络化及动态可视化,同时也可作为一个供地质灾害管理预测分析辅助的强大应用平台。
1.1.1电子沙盘框架建设
电子沙盘框架建设基于国际先进的SkyLine三维展示平台,利用DEM与DOM建立大场景的三维模型,实现整个地图大场景的描述,同时集成地质灾害相关信息,实现大场景的立体信息集成和展示,为使用者提供更为丰富的综合信息。
Skyline是一个领先的三维地理信息系统平台,用一个强大的界面,可以把不同的地理数据联系起来,并且可以把它们快速的分发到各个用户。沙盘框架逻辑如下:
1.1.1.1架构模式
三维可视化仿真系统采用当今社会最流行也最实用的B\\S架构,此架构降低了最终用户的维护和升级成本。
服务器端的配置:TerraExplorer Pro + TerraGate + internet License。
客户端的配置:TerraExplorer Viewer + IE6.0或以上。
开发环境:开发工具(Microsoft Visual Studio .NET 2003/2005 C#) + 客户端脚本语言(javascript/jscript)+ 编辑工具(UltraEdit/Editplus)。
Skyline软件体系结构如下图所示:
图 240 Skyline软件体系结构图
总的架构来分,Skyline分为三个模块。
数据合成模块TerraBuilder家族,它分为三个级别:单机版(TerraBuilder)、企业版(TerraBuilder Enterprise)、直连(DirectConnect)。他们三个之间的区别在于,数据量较小的时候就用单机版。当数据量比较大的时候,我们就用TerraBuilder企业版,它是利用网络中的计算器计算单元,相当于是CPU的并行计算。如果数据量达到类似全球级别的数据,那么我们就用DirectConnect,它的技术就类似于GoogleEarth、SkylineGlobe(用户可以登录www.skylineglobe.com进行免费下载安装)。利用DirectConnect不需要和成中间文件,只要你把影像数据和地形数据匹配好,做为终端安装一个插件,浏览到哪个区域,那么它就会自动将影像和地形数据进行叠加显示给终端。
TerraExplorer 家族分为免费版(TerraExplorer Viewer)、专业版(TerraExplorer Pro)和二次开发包(TerraDeveloper),关于它们几个的接口开放程度请看下图:
图 241 TerraExplorer Pro接口开放程度明细图
1.1.1.2应用流程
Skyline的应用流程:
1、准备好影像数据(可以是卫片或者航片)以及高程数据。
2、利用TerraBuilder合成地形数据库(合成好的文件格式是Skyline私有的*.MPT格式),即大的三维场景。
3、将合成好的*.MPT格式的地形数据库导入到TerraExplorer Pro模块中,在Tpro模块中,我们进行基于地形数据库的各种编辑工作,包括增加二维、三维物体,设置飞行路径,添加图片、标注等!这个工作就是我们做的工程文件,最终的文件格式是*.FLY格式。
4、通过TerraGate和Windows IIS共同实现Fly文件、JPG、矢量数据和MPT地形数据的发布。用户通过网络访问Fly文件时,MPT地形数据通过TerraGate进行网络发布,其他数据全部需要通过Windows IIS发布,流程图如下:
图 242 数据发布流程图
5、TerraGate的主要作用是进行*.MPT文件的网络发布,在TerraGate可以设置多个MPT文件,供FLY工程文件调用。
1.1.1.3模块功能
1.导入DEM数据。将已经处理好的DEM数据导入。要求DEM数据按照规格要求进行处理,处理完毕后的DEM数据使用本功能导入系统的场景模型,系统建立三维模型。
2.导入DOM数据。将已经处理好的DOM数据导入。要求导入前的DOM数据进行过配准纠偏等处理,并且已经符合规格。DOM数据导入后,自动和系统中的三维场景模型叠加,更加真实自然的展现地貌等特性。
3.建立三维场景模型。根据导入的DEM数据和DOM数据,建立三维的场景模型。在导入了DEM和DOM 之后,根据已经导入的数据,建立三维场景模型,展现DEM的三维信息和DOM的地貌信息。
4.场景模型管理。对场景模型进行管理,包括:参数配置和修改,场景删除等。在数据导入完毕后,系统需要对部分参数做适当的修改调整。
1.1.1.4流程逻辑
图 243 电子沙盘框架流程图
1.1.1.5Skyline平台的特性
1、TerraExplorer Pro的特性
(1)以网络数据流形式高效展现地形及叠加地貌信息。
(2)提供创建和发布3D地形可视化信息的所有工具。
(3)支持交互式绘图工具,用于在3D地形模型中创建几何图形、用户自定义对象、建筑物、文本、位图和动画。
(4)产生和输入静态、动态的2D或3D对象、符号及地理配准信息图层。
(5)在线或离线导入GIS数据图层。
(6)将图层数据以标准GIS文件格式输出。
(7)通过标准COM接口与外部、本地和WEB应用程序通讯。控制所有动态及静态对象、信息层和应用系统信息。
(8)提供全套3D测量及地形分析工具。
(9)自主导航功能可创建预定义飞行路径,并在TerraExplorer中回放。
(10)用鼠标、键盘和飞行控制面板的任意组合方式控制速度、高度角及视角。
(11)将事先录制的飞行路径输出为视频文件,如AVI或一系列帧文件。
(12)3D视窗中的快照功能及影像文件输出功能。
(13)在3D模型的特定区域建立指向网页、应用程序和数据库的超级链接。
(14)集成文本和WEB内容。
(15)通过发布工具输出3D场景提供Intranet/Internet访问。
(16)增强的本地或远程用户安全性保证。
2、TerraBuilder的特性
(1)高效的海量数据库处理能力。
(2)通过TerraBuilder代理支持多处理器及网络负载均衡。
(3)通过数据压缩降低数据存储量。
(4)支持大多数标准源数据格式。
(5)通过插件(PLUG-IN)形式支持读取新数据格式源数据。
(6)-BIT文件指针支持超过TB级数据库数据快速存取。
(7)自动融合(镶嵌)不同空间分辨率的源数据。
(8)提供高效用户接口用于自动或手动实现客户化定制。
(9)强大的三维模型预览选项和功能。
(10)丰富的编辑工具,用于创建和扩展用户自定义图层。
3、TerraGate的特性
(1)通过Intranet/Internet进行3D数据的传输。
(2)对低带宽的情况能够进行最优化。
(3)简单的可测量性设计。
(4)采用TCP/IP协议。
(5)与防火墙和代理服务器共同工作。
(6)充分利用多处理器服务器的硬件优势。
(7)有效处理大量数据集。
(8)地貌数据的大小只被磁盘媒质所。
1.1.1.6开发接口介绍
TerraExplorer Pro API是TerraExplorer Pro家族中的基础开发环境,是一套面向三维GIS应用系统开发者的新一代组件式GIS开发环境。TerraExplorer Pro API基于Microsoft的COM组件技术标准和脚本语言标准,以ActiveX控件的方式和脚本语言(如:Javascrīpt、VBScrip等)的方式提供强大的三维GIS功能,适用于用户快速开发专业三维GIS应用系统或三维地图网站。
TerraExplorer Pro API由ActiveX控件和数量众多的自动化对象(Automation Objects)构成,因此可以方便地嵌入到流行的可视化高级开发语言环境中进行二次开发。开发人员可以充分发挥Visual Basic、Visual C++、C++ Builder、PowerBuilder、Visual Basic.Net、Visual C#.Net和Delphi等高级开发工具在面向对象编程、可视化程序设计等方面的优势,结合各种第三方ActiveX组件,轻松开发出各种三维GIS应用系统。
1、TerraExplorer Pro接口
下列是您使用TerraExplorer或者TerraExplorer Pro开发一个客户端应用程序时用到的主要接口。这几个接口还可以衍生出许多扩展功能接口,欲知详情请参看接口的详细描述部分。
(1)ITerraExplorer–此接口是一些关于用户界面的具体设置譬如开发者使用的什么版本或者在用户界面里的一些单位的设置;
(2)IPlane–关于TerraExplorer Pro对plane和camera的控制。开发者通过对于IPlane接口的设置来操作plane和 camera按照要求进行各种复杂的运动;
(3)IObjectManager–用来处理所有在3D 世界里的对象。使用这个接口开发者能增加、取消和修改在3D 世界里的所有对象的各种属性。以下对象都可以通过IObjectManager 接口来处理:
2D Objects–通过设置以下接口的句柄来对这些2D对象操作(Text label, Image label, Polyline, Polygon, Rectangle, Regular Polygon, 2D Arrow, Circle, Ellipse 和 Arc)。
3D Objects–通过设置以下接口的句柄来对这些3D对象操作(3D Model, Building, 3D Polygon, Box, Cylinder, Sphere, Cone, Pyramid 和 3D Arrow)。
(4)Route–允许开发者在工程中添加修改新routes或者获取当前工程中存在的routes。
(5)Location–允许开发者进行一些兴趣点位置的设置。
(6)IInformationTree –提供对于TerraExplorer Pro 的信息树的完全控制。
(7)ITerrain–反馈一些MPT的信息, 譬如被使用的MPT 文件名,MPT 坐标系, 和高度信息等等。
(8)IContainer–能够提供对TerraExplorer Pro 内部的 container 的交互控制。
(9)IRender–允许开发者控制当前实时的信息反馈,比如一个具体兴趣点在屏幕坐标和地形坐标之间的转换,获得当前地形质量的信息。并且提供关于鼠标的操作。
(9)ISnapShot–使开发者从 TerraExplorer Pro 中获取当前地图窗口的快照。
(10)IStartPosition–获取当前工程的起始坐标信息。
(11)ITerraExplorerEvents4–使用这个接口开发者可以在客户端获取各种事件的句柄,例:装载FLY文件, 保存FLY文件, 删除对象, 编辑对象, 鼠标事件等等。
(12)ICoordSys–这个接口给开发者提供坐标系统信息及相关的特点。
(13)IscrīptEngine–这个接口提供关于用于开发的脚本语言的信息设置
2、TerraExplorer接口
TerraExplorer 的主要接口如下:
(1)ITerraExplorer4 (Partial)
(2)IPlane3
(3)ITerrain3
(4)IContainer
(5)IRender4
(6)ISnapShot2
(7)IStartPosition
(8)_ITerraExplorerEvents4
(9)IInformationTree4 (Partial)
(10)IObjectManager4 (Partial)
在TerraExplorer 主要的用户接口里,用户可以订制一些特定的基础功能,但是不能超出范围。例如:由于接口的创建标签时不可以的,只能使用更高级别的TerraExplorer Pro和TerraDeveloper进行创建。
3、TerraDeveloper接口
TerraDeveloper能够创建定制的TerraExplorer Pro应用程序。TerraDeveloper软件开发包是一套ActiveX 控件,它给开发者提供全面的用户化的TerraExplorer Pro应用软件。利用TerraExplorer Pro的环境,开发者能够在三维中通过在任意应用或HTML网页上合并TerraExplorer Pro构建自己的应用程序。TerraDeveloper允许在基于PC机的系统上,向任何应用程序中添加强大的三维地理空间界面,包括桌上型电脑,膝上型电脑,网络和无线设备。
TerraDeveloper作为ActiveX控件可以添加的用户界面定制功能,能够和TerraExplorer Run Time Pro一起应用。TerraExplorer Pro家族还包括一套全面的工具和扩展模块。所有的工具都是用TerraExplorer Pro API开发的,这些工具都能够被TerraExplorer Pro, TerraExplorer Run Time Pro 和TerraExplorer Viewer激活,当然要有特殊的许可。
TerraDeveloper的主要接口如下:
(1)ITE3DWindow–获得一个标准的TerraExplorer接口和重写键盘控制键;
(2)ITE3DWindowEvents–允许客户端获得键盘和鼠标信息,并且组织管理这些信息;
(3)ITEInformationWindow–获得一个标准的TerraExplorer接口和重写键盘控制键;
1.1.2三维浏览和漫游
三维浏览和漫游功能,在已经建立起正确的三维场景模型的基础上,对已经建立完毕的三维模型进行三维展示和浏览。
因为三维场景相对二维数据,数据量增幅较大,为提高漫游速度和效率,增强用户体验,三维浏览和漫游功能,按照广西壮族自治区自治区区界、地州界进行数据索引。分区域进行三维场景的展示。
三维浏览和漫游具体功能有:根据坐标定位,按照比例缩放,向北移动,拖动旋转,停止旋转和漫游,信息浏览等。
三维浏览和漫游提供预定义路径的漫游功能,以实现通过自定义路径的自动漫游。
1.1.2.1模块功能
三维浏览和漫游功能有:定位,缩放,向北,旋转,停止,浏览。可按照预定义的路线进行漫游。
1.定位:用户输入经纬度坐标点和GPS坐标点,定位到坐标点的位置。
2.缩放:点击窗口下方的“”按钮分别缩放到不同高度;提供了6个层级的缩放。
3.向北:点击“”按钮地图向北显示;在漫游和旋转情况下,此功能将能正确的回归正常的地图浏览方式。
4.旋转:点击“”按钮旋转查看地图;在地图上拖动鼠标,旋转地图。
5.停止:点击“”停止当前地图的操作状态。在漫游或者自动漫游状态下,此功能停止漫游进程。
6.浏览:选择“”在地图窗口中鼠标左键以不同浏览方式浏览地图;
图 244 三维地图导航结构图
1.1.2.2流程逻辑
三维场景模型按照区域进行索引和存储,为加强性能浏览和展示也遵循区域的原则,首先选择区域,选择后展示区域的三维场景。地质灾害相关数据叠加在场景之上,通过点选方式查询详细信息。
图 245 三维场景模型流程图
1.1.2.3界面
图 246 三维浏览窗口
1.1.3三维地图量算
三维展示情况下,相对于二维状态,长度,面积,高度等要素更加需要精确的量算,以克服人类的视觉误差,得到精确的数据。
本功能在三维地图的状态下,进行距离、高度、周长、面积等进行量算。
所有的量算,最后结果均为三维情况下,依照地表起伏所计算出来的距离、高度、周长、面积。
1.1.3.1模块功能
1.水平距离量算:测量两点或者多点之间的水平距离,最终结果和地表起伏无关,是直线距离。具体操作步骤:点击水平测量工具,左键选择测量长度,右键结束测量。
2.空间距离测量:测量两点或者多点之间的空间距离,按照地表欺负计算长度和距离。具体操作步骤:点击空间测量工具,左键选择测量长度,右键结束测量。
3.高度测量:测量两点之间的高度差。具体操作步骤:点击高度测量工具,左键选择测量长度,右键结束测量。
4.面积与周长测量:测量三维场景下的面的面积和周长,测量依据地面起伏情况,计算实际的面积和周长。具体操作步骤:点击面积与周长测量工具,左键选择测量长度,右键结束测量。
1.1.3.2流程逻辑
图 247 三维地图量算流程图
1.1.4三维地图量算
在某些情况下,需要将三维场景的图景使用到另外地方去,本功能将当前三维窗口进行拍照,并将照片进行保存、打印、预览等操作。
保存后的三维场景图像,可以被使用到其他需要的场景中去。
1.1.4.1模块功能
1.拍照:拍照功能将当前三维场景图景在内存中拍摄保存。具体操作步骤:点击“”进行拍照;
2.保存:将拍摄的三维场景图景保存为图像。具体操作步骤:在弹出窗口选择“”工具将照片保存。
3.打印:将拍摄的三维场景图景打印输出。具体操作步骤:在弹出窗口选择“”工具打印照片。
4.预览:预览拍摄到的三维场景图景。具体操作步骤:在弹出窗口选择“”工具预览照片。
图 248 三维地图拍照流程图
1.1.4.2界面
图 249 三维地图拍照窗口
1.1.5地质灾害数据查询
在已经建立了正确的三维场景模型,并且叠加了正确的地质灾害相关信息的基础上。在电子沙盘上,本功能根据电子地图图层,叠加显示气象监测点、监测站等关键点信息,并以核心模型的方式显示在电子沙盘上。同时点击查询该关键点的相关信息,包括属性信息以及实时监测数据等。
在电子沙盘上还能叠加显示地质灾害分析结果,给用户提供一个分析辅助决策的直观平台。
1.1.5.1模块功能
1.属性查询图形:配置查询的条件,查询三维场景中的地质灾害相关数据。输入查询内容,显示查询结果
2.定位:在查询出的结果中,选择一个进行观看。具体操作步骤:选择一条记录-点击-定位到选择对象。
3.编辑:在查询出的结果中,选择一条记录点击-编辑对象。
4.显示:在查询出的结果中,选择一条记录点击-显示对象。
5.隐藏:在查询出的结果中,选择一条记录点击-隐藏对象。
6.收藏:在查询出的结果中,选择一条记录点击-收藏对象。
7.点击查询属性。在三维场景浏览情况下,点击标记为地质灾害相关信息的点,显示相关的属性信息。
1.1.5.2流程逻辑
图 250 地质灾害数据查询流程图