VRmap是什么及VRmap的基本特点 VRmap二次开发

第1章 VRMap2.X介绍
1.1 VRMap 是什么?
VRMap 2.X产品系列是北京灵图软件技术有限公司拥有完全自主知识版权的核心技术国际领先的三维地理信息系统平台软量数据件,可以在三维地理信息系统与虚拟现实领域提供从底层引擎到专业应用的全面解决方案,其海处理能力、高级仿真效果、跨平台通信、数据库驱动、二次开发支持等关键技术指标均全面领先于国内外其他同类产品。与国内外同类产品相比,VRMap能够为政府部门、企业、专业领域用户提供性能更优、持有与维护成本更低、扩展性更好的三维地理信息和虚拟现实应用解决方案,是“数字城市”建设最佳的基础软件平台之一。
目前VRMAP产品系列已在数字城市、军事作战指挥、电子沙盘及地形仿真、智能大厦、房地产展示、水利与自然灾害等专题分析与仿真、遥感测绘与土地管理、环保、气象、地质、石油化工、电信基站管理等领域获得广泛应用。
凭借VRMap 2.X的卓越性能和高度的客户满意度,VRMap2.X被列入2001年度国家重点新产品计划,并获得了科技部国家遥感中心国产软件测评优秀奖,中国软件协会2000、2001、2002年度优秀推荐软件产品奖,第三届中国北京高新技术产业周10大IT创新产品等一系列荣誉和奖项。
1.2 VRMap 能创造何种独特的用户价值?
凭借在三维领域多年深入的研究,VRMap2.X已经成为用以构建符合工业标准的三维地理信息系统和虚拟现实应用的最好的软件平台,在VRMap的帮助下,数以千计的用户构建了高质量的三维应用,获得了极好的回报。那么VRMap究竟能够创造何种独特的用户价值呢?
1、 借助核心技术国际领先的三维GIS引擎,实现性能优异的三维应用。
2、 在普通PC上运行稳定,性能优异,用户可以低成本拥有与维护。
3、 二次开发功能强大,借助工业标准的COM组件技术,用户可以按照自己的实际需要,借助VRMap全线产品,灵活定制与构建个性化的三维解决方案。
4、 成功案例众多,用户广泛,拥有丰富的各行业应用经验,用户可以方便获得良好的技术支持与咨询服务。
5、 拥有完全核心底层技术,可以为客户扩展与优化底层核心代码,不存在采用国外平台二次开发而存在的技术瓶颈与安全顾虑。

1.3 VRMap2.x的特点
VRMap2.X具有海量数据处理能力、全COM体系结构等一系列令人振奋的特性,凭借这些不同之处,VRMap才能为用户提供更优越的解决方案。
1.3.1 海量数据处理能力
目前,在很多GIS行业应用中,用户都对系统提出了海量数据处理的能力。在三维地理信息系统领域,海量数据大致可分为两类,即地域广度意义上的和细节精细程度上的。从广度意义上来说,海量数据指地域跨度非常大的数据量,如整个北京市、全中国乃至全世界,如此地域跨度非常大的地图数据往往数据量大得惊人;从细节意义上来说,海量数据指那些接近真实视觉效果的数据。
VRMap采用了全新的核心技术来构架海量数据引擎,达到了广度海量和细度海量的完美统一。
在广度意义上,VRMap采用了金字塔数据结构来组织数据,使得用户在任一时刻浏览的数据都只是金字塔中的一个小角,从这个意义上来说,无论整体的广度数据多么庞大,都不会影响到VRMap在客户端的浏览速度。
在细度意义上,VRMap采用了多种高级的图形技术来加速复杂结构的渲染,这其中包括多种LOD技术,全自动遮挡排除技术,快速模型生成技术等。
由于三维GIS数据极端复杂,且数据量庞大,除了几何数据外,还包括大量纹理贴图数据。如此大的数据量,从载入到开始进入显示状态,常常要花很长的时间,有时甚至长达数十分钟。VRMap的金字塔海量数据引擎则采用了全新的动态载入架构,在大幅提高了浏览速度的同时也提高了载入速度,并实现了并行载入,即浏览和载入同时进行。并行载入使用户察觉不到载入所导致的任何停顿,因此也可称为“零时间载入”。
海量数据的处理能力不仅仅只是浏览和查询,数据的编辑与更新也是一个必须解决的问题。由于VRMap采用了数据分布式存储技术,根据数据的元数据信息在客户端动态组装,这样用户对数据的编辑和更新就变得相当灵活,不需要考虑局部编辑之后,再与总数据组装。同时也在底层架构好了与空间数据库的接口,为空间数据的统一管理打好了基础。
下面是一个应用案例,在这个案例中,显示了VRMap对广域数据和精细数据同时处理的能力。
◆ 整个中等城市的全部数字线划图转化为三维景观。楼房共100,000栋。
◆ 其中局部标志景观五处,精细度逼近MAX效果图,总数据量10G。
◆ 有三个局部子场景,并可以进入室内观察,内部结构复杂,有光影效果(包括环境映射)。
◆ 硬件配置:PIII600MHZ GeoForce3Ti200 VIA芯片组 256M内存 IBM40G
测试结果:
◆ 低空浏览速度>20FPS
◆ 俯视浏览速度>15FPS
◆ 调入速度<15秒
◆ 最大停顿时间<3秒
1.3.2 出色的仿真效果与GIS的结合
三维GIS与传统二维GIS相比,它表现世界的方式要真实得多,丰富得多,具体的多,这是二者之间的一个显著区别。
VRMap采用了多种最新的图形技术,包括:环境映射技术、凸凹映射技术、粒子系统技术、基于辐射度的光影技术等来生成各类基于辐射度的光影效果、室内光影效果、阴影效果、环境映射、镜面效果、火焰效果、爆炸效果、喷泉效果、烟雾效果、尾迹效果等三维仿真效果。
1.3.3 组件式3D GIS 平台与二次开发支持
VRMap 从其2.0版本就实现了全组件式体系结构。从VRMap2.0到2.X,在规划、房地产、电信、气象、水利、地质等行业的成功应用,都充分验证了VRMap组件体系结构的合理性、开放性、前瞻性、扩展性、成熟性。
VRMap将系统分为驱动层、核心层、应用层、扩充集层。用户可以在任何一个层面进行二次开发,例如: VRMap2.X在核心层、驱动层增加的海量数据处理能力、高级图形效果都可以方便地提供给用户使用。
利用VRMap2.X成熟组件体系进行二次开发使用户可以针对具体的行业特点,开发出符合自身特殊需要的成熟的三维地理信息系统和虚拟现实应用,用户不用再一步步从底层做起,可以轻松获得三维地理信息系统和虚拟现实领域的最先进技术,同自己的业务紧密结合,开发出实用好用的系统。
凭借VRMap2.X成熟的组件体系,VRMap2.X的二次开发支持功能是国内外同类软件中首屈一指的。她支持的二次开发方式包括界面自定义、VBA开发、插件开发、自定义节点、SDK开发、控件开发等。
VRMap2.X专业版提供了具有工业标准的Microsoft Visual Basic forApplication(VBA)开发环境,用于脚本编程和定制工作。如果您在MicrosoftOffice系列产品下做过二次开发或者您熟悉Microsoft VisualBasic,您均能通过简单的方法获得您想要得到的结果。VRMap2.X的插件标准遵循Microsoft VisualBasic插件标准,任何熟悉Microsoft Visual
Basic开发工具的开发人员均可快捷的开发出自己想要的插件功能模块。同时,VRMap2.X的很多的功能也是用插件进行实现的,您可以通过插件管理器对插件进行〖装载〗或者〖卸载〗。VRMap2.X为专业版用户提供了在Microsoft的Visual Basic以及Visual C ++开发环境下的插件工程向导,使得您可以非常方便的开发自己的插件。由于VRMap2.X整个平台层以及所用到的核心层都遵循COM标准,任何兼容COM的编程语言,如:Microsoft Visual C ++、Visual Basic、Borland Delhpi、C ++Builder都能用于制定和扩展VRMap2插件。
VRMap2.X 企业版用户可以利用企业版自带的 VRMap SDK组件包进行开发,VRMapSDK将所有核心层的接口全部开放给二次开发用户,对于高级用户甚至可以进行驱动层的开发。用户可以在自己的系统中自由的利用VRMap提供的三维GIS组件,选用VisualBasic、VC++等支持组件开发的语言快速开发,方便快捷地构建自己的应用系统。一个例子是:用户可以在支持二次开发的二维GIS平台(SuperMap、Mapinfo、ArcInfo等)中方便的引入三维功能,充分利用二维GIS平台和三维GIS平台的优点,开发无缝结合的二维+三维应用。VRMap2.X控件是VRMap产品的新成员,它采用了全新的设计思想,将插件和组件完美的融合,在二次开发构架上属独创,在VRMap插件开发与VRMapSDK开发之间搭起了一座桥梁。使得VRMap2专业版强大插件功能可以为SDK开发用户所用,一个功能只需要一两行代码。开发简单,大大简化了VRMapSDK开发。原先2-3百行的代码用控件开发只需5行代码。下面是使用VRMap控件开发的一个简单的浏览器代码示例:
VRMapX2Win3D1.VRMapX2Control = VRMapX2Control1
VRMapX2Control1.StatusBar = StatusBar1 "设置状态条
VRMapX2Control1.ProgressBar = ProgressBar1 "设置进度条
VRMapX2Control1.LoadPlugin ("VRMap1.VMOldPlatform.1")
VRMapX2Control1.SceneFile = "2.vm2"[NextPage]
一共只需要5行代码,就可以编写一个可以浏览VRMap三维场景数据的浏览器程序。
VRMap2.X企业版全面支持控件二次开发,VRMap所有的功能插件都可以免费提供给企业版用户,更重要的是VRMap2.X企业版已开始提供全新的功能服务。随着VRMap的核心层的成熟,VRMap将更注重提供实用的专业GIS分析等功能,并且会快速响应用户的功能需求,为用户制作实用工具,以插件方式提供给用户使用,企业版用户只需要几行代码就可以将这些功能加入到自己的应用中。
1.3.4 完整的空间数据描述体系
VRMap将各类对象进行归类,并且针对某一类对象定义数学模型,形成一类结点。任何结点对象均可以成为另一个结点的子结点。父子结点之间的关系通常为空间关系上的绑定关系。例如为大家熟悉的DEM就是一种数学模型,利用这种数学模型创建了地形结点,依附于地形上的道路、河流等都可以作为其子结点。这样,对于人、天空、飞机、汽车等都可以通过定义一类结点用于描述。每个结点都有自己的参考系,自己的空间信息和属性信息,并归属于其父坐标,所有结点通过世界坐标统一。
利用这种空间描述模型,VRMap先后扩展出了矢量地物、曲面模型、粒子系统、洪水结点、气象场结点、水流场、地质体等结点。对于三维空间的描述日益完善,并且所有的SDK二次开发用户都可以通过自定义结点的方法加入自己的模型。而且一旦有一种成熟的空间描述模型,就可以将其加入到VRMap结点体系中来。这样VRMap可以描述各种各样的客观对象,而不仅是建筑场景。
1、曲面描述
VRMap利用曲面描述方法来描述DEM、矢量面,利用建模工具制作的模型等,目前国内外大多数三维GIS平台都采用了这种方法。利用这种方法视觉上可以准确反映事物的外观,并可以进行分析、查询。对于三维地形、建筑、车辆、树木等都可以通过这种方式表达。VRMap全面支持这一类的表现、分析手段。

2、三维矢量数据
类似二维中矢量数据的特点,采用三维中的曲线、曲面描述河流、水域、管线等特殊地物,数据矢量方式存储显示,并且可以建立拓扑关系、GIS分析。
3、三维矢量场数据
矢量场主要用于描述运动体,其具有位置、方向属性,例如风速场等。
4、二维标量场数据
用于表现二维空间分布的浓度场、气温场等特性,提供二维空间栅格方式的描述方法。
5、三维标量场数据
用于表现三维空间分布的浓度场、气温场等特性,提供三维空间栅格方式的描述方法。

6、体数据
体数据是以矢量方式表现一个体的特征,一个体具有相同的属性,剖面。在表现实体方面都可以使用,例如地质体,金属体等。
1.3.5 三维矢量数据解决方案
从三维GIS诞生开始,如何从传统GIS数据动态生成三维景观就成为三维GIS首要解决的问题之一。比如说:如何从数字线划图自动地生成城市景观、楼宇、公路、河流这些在二维GIS中仅仅是简单的线段和多边形,而在三维中却要赋予它们真实的表现形式。
在传统地理信息系统中,采用矢量的点、线、面表示各类地物、自然现象,并且积累了大量的空间数据。面对大量矢量数据,VRMap提供了多种多样的转换方法,让广大用户轻松、快速利用原有数据生成位置准确、表现真实的三维景观。
针对三维地形的快速生成,VRMap提供的导入器可以快速地根据原始的离散高程点数据、等高线数据、DEM、DOM数据,快速建立三维地形。
对于数字线划图三维可视化问题目前国内外同类产品一般采用栅格化方法,即将矢量数据通过预处理生成一张栅格图,并与底图叠合。这种方式在技术上实现简单,但其致命的缺点在于无法编辑,并且贴近观察时会出现马赛克。
VRMap在经过了长期的探索之后,自行研发了多种三维矢量数据表达方式,它们的显示效果远远超过了同类产品,且最大突出之处在于其动态性,即动态生成、动态编辑和动态更新。这些新技术的出现大大的弥补了传统三维矢量解决方法只能做展示的不足之处,使得直接在三维数据上进行查询、分析及编辑成为可能。
◆ 单色线划图、单色面区域
单色线划图、单色面区域是一种接近于传统GIS的表达方式,这种方式的优点是简单、快捷并能很好的和地形匹配。
◆ 动态建筑物生成
支持从平面数字线划图中快速地拉起城市建筑群。该技术可以直接从GIS数据相应字段中读取房屋的照片和楼层信息,并予以三维真实的再现。用户还可以为不同的房屋定义不同的屋顶类型,如人字形房顶、尖顶等。
◆ 纹理地块
在某些应用下,简单的用单色区域来表达可能并不充足,比如对于湖泊,如果带有水面效果,则表达会更逼真,而对于草地、土地等不同的地质区域,用相应的地质纹理进行覆盖,表现的力度也会得到加强。
VRMap提供了纹理地块的表现手段,很好的解决了上述的表现问题。
◆ 矢量注记支持
在目前国内外同类产品中,注记显示一直采用栅格方式,这种方式显示效果差,在VRMap中,新的矢量显示方式技术从TrueType字形中提取出字体轮廓,以矢量的方式进行表现,大大提高了注记的显示效果。在VRMap2.x版本中增加了三维文字显示方式,文字显示效果更加美观、清晰。
◆ 匹配点、线、面技术
在传统GIS中,一个点可能是一棵树或者路灯;一条简单的折线段可能是一条高速公路,也可能是铁路或者河流;一个面区域可能是湖泊,或者是树林、草地。而这些在三维中如何能够简单快捷转化为更贴近现实的表现方式,就成了一个关键问题。

VRMap提供了新的方法,将不同类型的景观(树木、花草、路灯、路牌、天桥等)通过一个匹配模型动态合成在一起,动态生成了公路、铁路、树林、湖泊等的真实景观。

1.3.6 良好的人机交互
1.3.6.1 二三维信息表现无缝整合
由于视觉习惯原因,人们一方面需要体会在三维环境中漫游的沉浸感,另一方面又要以传统平面方式概览信息。VRMap2.X将二维方式和三维方式进行了完全的整合,创建了二维界面元素,可以从属于三维场景。通过二维节点,用户可以将鹰眼、图片、媒体、图表等任何二维信息进行展示,并且可以根据需要随意调出。例如,你可以调出一个建筑的顶视图,摆放到屏幕的任意位置,你可以通过点击调出物体的属性图表信息,也可以走近一个电视机,按下打开按钮播放一段电影或者精美的FLASH动画。
1.3.6.2 人性化浏览操作
VRMap从其诞生起就提供了方便的键盘+鼠标的漫游操作。在广大用户的使用中,不断提出各类需求,目前VRMap2.X提供了多种漫游方式,包括:步行模式、飞行模式、自动沿线飞行、游戏杆、立体眼镜等。
1.3.6.3 “事件-触发”机制
VRMap2.X以使用者为中心来设计构造,其友好的人机交互系统使初学者能快速掌握系统使用。在不断跟踪国际最新三维显示技术、提供最佳显示效果的同时,VRMap2.X在人机交互方面也做了大量的工作,为此独创了“事件-触发”机制,提供一种可视化定制人机交互操作的功能。
“事件-触发”机制通过协调“事件模块”和“触发模块”,使虚拟场景编辑者可为场景中的任何触发源指定执行任何事件,这就相当于赋予了这个虚拟物体(触发源)“生命”,用户浏览时,该物体就会自动对用户的操作做出反应,整个虚拟事件活了起来,例如你走进房子,可以留意一下墙上,也许有个开关可以把室内的灯打开;你走到一栋大楼门前,也许会惊奇的发现它的电动门自动为你打开,等等。而实现所有这些,VRMap场景的创建者只需点点鼠标即可实现,无需编程。
1.3.7 跨平台通信
Microsoft的分布式COM(DCOM)扩展了组件对象模型技术(COM),使其能够支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。使用DCOM,你的应用程序就可以在位置上达到分布性,从而满足你的客户和应用的需求。
因为DCOM是世界上领先的组件技术COM的无缝扩展,所以你可以将你现在对基于COM的应用、组件、工具以及知识转移到标准化的分布式计算领域中来。当你在做分布式计算时,DCOM处理网络协议的低层次的细节问题,从而使你能够集中精力解决用户所要求的问题。
VRMap本身是组件式平台,能够很好的支持DCOM通信,从而实现跨平台通信,这一特性,使VRMap可以在各类监控系统、远程控制、军事作战指挥系统中发挥作用。
1.3.8 强大的数据库驱动引擎
VRMap可以通过标准商用数据库来管理海量三维数据。三维数据的数据库管理与传统GIS数据不同的是,三维数据的数据量远远超过了传统GIS,用于描述真实复杂结构的精细模型和材质贴图使得数据量成倍的增长;另一方面,三维GIS系统所要求的实时性对数据库系统的性能提出了很高的要求。如何使用现行的商业数据库来满足这些苛刻的要求,成为三维GIS系统需要解决的问题。
VRMap通过基于结点的属性绑定、分层管理技术和R树技术管理空间数据和属性数据。另外采用了皮肤+骨架技术,并借助分布式存储、分布式运算技术解决了海量数据的存储与动态载入、显示的问题。
VRMap将数据按照空间关系划分成多个块,每个块由多个结点构成。在VRMap中任何场景对象均可以描述成为〖结点〗,地形、摄像机、灯光、媒体、控制器、触发器、粒子系统等等均为结点对象。任何结点对象均可以成为另一个结点的子结点。父子结点之间的关系通常为空间关系上的绑定关系。基于结点的空间描述模型使得在描述真实空间时变得简单和易于理解,同时很好解决了空间场景与数据库的绑定问题:结点在VRMap中是一个数据单元,对应于数据库中的一条记录,VRMap的每个图层都可以和数据库表进行绑定,通过绑定,用户可以在图形数据和属性数据间进行双向查询,如查询指定点位的属性信息或查询符合某个属性特征的对象的空间位置。只要是支持ODBC的数据源就可以绑定到场景对象中。数据属性记录与结点的绑定是一种非常灵活的绑定方式。用户可以根据自己的要求通过使用VBA宏编制更适合自己需求的数据库绑定方式。绑定数据库记录后,用户在数据库属性窗口中就可以察看到绑定的记录。
VRMap的数据库技术建立在工业标准之上,使用Microsoft的ADO/OLEDB的万能数据访问标准(UDA)来访问和管理数据。二次开发用户可以通过工业标准的访问方式SQL语言来操作数据。VRMap通过多层数据缓冲来实现从服务端到客户端的数据过渡,这种机制与基于金字塔的渲染引擎紧密结合在一起,解决了浏览速度要求与传输瓶颈之间的矛盾。