基于OsgEarth的三维可视化组件实现方法及系统技术方案

技术编号:24352296 阅读:28 留言:0更新日期:2020-06-03 01:50
本发明专利技术涉及一种基于OsgEarth的三维可视化组件实现方法及系统,该系统场景嵌入模块、实体定义模块、接口定义模块、特效定义模块、事件定义模块、场景展示模块、结构展示模块以及属性展示模块;场景嵌入模块接入、实体定义模块、接口定义模块、特效定义模块以及事件定义模块分别接入场景展示模块;场景展示模块分别接入结构展示模块以及属性展示模块。本发明专利技术提供了一种支持整个场景大体量BIM模型数据及小范围大体量BIM模型数据再加、API丰富且扩展性好以及模型定位准确的基于OsgEarth的三维可视化组件实现方法及系统。

Realization method and system of 3D visualization component based on osgeearth

【技术实现步骤摘要】
基于OsgEarth的三维可视化组件实现方法及系统
本专利技术属于三维图形
,涉及一种三维可视化组件实现方法及系统,尤其涉及一种基于OsgEarth的三维可视化组件实现方法及系统。
技术介绍
20世纪90年代后,由于三维可视化的迅猛发展使得建立三维GIS成为可能,而“数字地球”对建立三维GIS也提出了更为迫切的要求。三维GIS不仅能表达空间对象间的平面关系和垂直关系,而且也能对其进行三维空间分析和操作,向用户立体展现地理空间现象,给人以更真实的感受。在三维可视化方面,国外大量研究集中在三维GIS的数据模型和建模方法方面,如结构实体法(CSG)和边界模型法(BR)。近年来,在矢量模型和栅格模型继承方面,又提出了FDS模型,混合模型和TEN模型,基于混合结构的三维GIS数据模型与空间分析研究。在技术方面,OpenGL和DirectX已发展为比较成熟的三维图形应用接口,VRML2已支持动画和动态可视表达,已适用于城市、地质、海洋等领域;德国学者开发了城市三维GIS,开始三维技术与可视化技术结合,根据地理对象与视点的距离、方向等关系,对地理显示不同的细节层次,采用四叉树(QTP)和TIN简化地形数据,用纹理建立每一张纹理图片(Patch)管理和地形数据片的连接关系。国内在三维GIS软件技术研究方面,中国科学院遥感应用研究所在科学院创新项目支持下,首先在我国的地学领域建立了第一个基于沉浸式虚拟现实技术的数字地球实验室,并开战了“数字地球原型”研究雨系统研发;在2003-2005年间,国家投入了相当的经费相继在地学领域建立了虚拟现实相关实验室。目前铁路行业应用BIM技术进行各专业模型及数据的管理需求越来越多,BIM在铁路行业的发展也越来越趋于成熟,所以大量的铁路BIM模型被创建,然而要展示整条或整个中国的所有铁路在现在主流的BIM软件(如AutodeskRevit)上进行管理是不可能的。最好的解决方案是在GIS平台上进行模型展示及管理。由于铁路机电系统的设备复杂性高(设备、部件、板卡、端子模型都需要展示)模型简化和纹理压缩之后体量也大;且主要的逻辑数据不能通过模型本身完全表达,需要开发相对应的逻辑数据管理功能;由于铁路线路长、配线密集导致电缆模型体量巨大,这就要求GIS平台:(1)三维数据性能要好,可支持整个场景大体量BIM模型数据及小范围大体量BIM模型数据再加;(2)API丰富,扩展性好,可以进行相关的比如地形压平、设备定位等基本功能;(3)技术服务便利;(4)价格便宜。目前市面上主流的三维GIS软件为Skyline与CityMaker,通过比较发现以下问题:(1)Skyline对于整个场景的数据量有着限制,加载大体量数据时不时就会出现模型不显示的问题;(2)CityMaker的API暂不满足铁路机电系统相关功能开发;(3)三方软件价格昂贵,铁路体量大,所需要的点位多,按点位收费的规则,导致花费巨大。
技术实现思路
为了解决
技术介绍
中存在的上述技术问题,本专利技术提供了一种支持整个场景大体量BIM模型数据及小范围大体量BIM模型数据再加、API丰富且扩展性好以及模型定位准确的基于OsgEarth的三维可视化组件实现方法及系统。为了实现上述目的,本专利技术采用如下技术方案:一种基于OsgEarth的三维可视化组件实现方法,其特征在于:所述基于OsgEarth的三维可视化组件实现方法包括以下步骤:使用VisualStudio2017新建MFCActiveX工程项目,在工程项目的OnDraw事件中设计64位运行时界面,添加64位的OsgEarth相关依赖项,在OnCreate事件中创建图形窗口并设置给相机,调整图形窗口的大小使其自适应基础组件,所述OnCreate事件中创建的图形窗口记为三维场景;2)新建C++类库项目,记为实体项目,在实体项目中定义所需实体类,为每一类型的实体定义属性,添加回调方法,添加序列化和反序列化方法;3)在工程项目中添加ATL支持,根据每一个接口方法的业务逻辑完成每一个接口方法的实现供.NET或WEB使用;4)新建C++类库项目,记为特效项目,在特效项目中定义特效操作;5)在工程项目中定义主组件的鼠标、键盘和用户事件,并将这些事件全部暴露;6)在工程项目中引用实体项目,添加实体节点,在三维场景中进行展示,场景地球含良好的地球操作器供用户使用;7)在结构树上任意点击一个实体节点,查看当前实体节点的属性,属性被修改时同步修改内存数据和场景对象的属性;8)三维场景中数据的更新会按照层次节点去更新属性,该层次节点之间的关系主要以实体节点类的继承关系为主;9)在工程项目中定义用户接口,根据每一个接口方法的业务逻辑完成每一个接口方法的实现,编译工程项目,生成ocx组件供.NET或WEB使用。一种基于OsgEarth的三维可视化组件实现系统,其特征在于:基于OsgEarth的三维可视化组件实现系统包括:场景嵌入模块,在新创建的Com组件项目中,设计64位运行时界面,添加64位的OsgEarth相关依赖项,创建三维可视化基础组件为主组件;实体定义模块,在新创建的实体项目中定义所需实体类,完善每一个实体类属性信息、回调方法及序列化和反序列化方法,实体类之间有继承关系;接口定义模块,在当前项目中定义所需接口,根据每一个接口方法的业务逻辑完成每一个接口方法的实现,过程中需要注意同场景展示模块、结构展示模块和属性展示模块的数据联动;特效定义模块,在新创建的特效项目中,封装节所需的特效操作;事件定义模块,在当前项目中定义所需事件,该事件和主组件紧密关联,主要完成鼠标、键盘及用户的相关操作;场景展示模块,在主场景中添加实体节点,在三维场景中展示三维BIM模型、标签以及地形;结构展示模块,在结构展示模块中添加实体节点,同样会映射到三维场景中,在结构展示模块中会展示数据的层次结构;属性展示模块,在结构展示模块中选取任意一个实体节点,都会对应当前实体节点的属性信息,通过修改属性信息来联动场景中实体的属性修改操作;所述场景嵌入模块接入、实体定义模块、接口定义模块、特效定义模块以及事件定义模块分别接入场景展示模块;所述场景展示模块分别接入结构展示模块以及属性展示模块。上述基于基于OsgEarth的三维可视化组件实现系统还包括数据更新模块,所述结构展示模块以及属性展示模块分别接入数据更新模块,场景中数据的更新会按照层次节点去更新属性,该层次节点之间的关系主要以实体节点类的继承关系为主。上述基于基于OsgEarth的三维可视化组件实现系统还包括接口导出模块;所述接口导出模块是在当前项目中统一处理应用接口,供外部应用及扩展应用使用,接口的所有操作都会触发场景展示模块、结构展示模块和属性展示模块的数据联动;所述接口定义模块接入接口导出模块。本专利技术的优点是:本专利技术提供了一种基于OsgEarth的三维可视化组件实现方法及系统,其中创建方法是在A本文档来自技高网
...

【技术保护点】
1.一种基于OsgEarth的三维可视化组件实现方法,其特征在于:所述基于OsgEarth的三维可视化组件实现方法包括以下步骤:/n1)使用Visual Studio 2017新建MFCActiveX工程项目,在工程项目的OnDraw事件中设计64位运行时界面,添加64位的OsgEarth相关依赖项,在OnCreate事件中创建图形窗口并设置给相机,调整图形窗口的大小使其自适应基础组件,所述OnCreate事件中创建的图形窗口记为三维场景;/n2)新建C++类库项目,记为实体项目,在实体项目中定义所需实体类,为每一类型的实体定义属性,添加回调方法,添加序列化和反序列化方法;/n3)在工程项目中添加ATL支持,根据每一个接口方法的业务逻辑完成每一个接口方法的实现供.NET或WEB使用;/n4)新建C++类库项目,记为特效项目,在特效项目中定义特效操作;/n5)在工程项目中定义主组件的鼠标、键盘和用户事件,并将这些事件全部暴露;/n6)在工程项目中引用实体项目,添加实体节点,在三维场景中进行展示,场景地球含良好的地球操作器供用户使用;/n7)在结构树上任意点击一个实体节点,查看当前实体节点的属性,属性被修改时同步修改内存数据和场景对象的属性;/n8)三维场景中数据的更新会按照层次节点去更新属性,该层次节点之间的关系主要以实体节点类的继承关系为主;/n9)在工程项目中定义用户接口,根据每一个接口方法的业务逻辑完成每一个接口方法的实现,编译工程项目,生成ocx组件供.NET或WEB使用。/n...

【技术特征摘要】
1.一种基于OsgEarth的三维可视化组件实现方法,其特征在于:所述基于OsgEarth的三维可视化组件实现方法包括以下步骤:
1)使用VisualStudio2017新建MFCActiveX工程项目,在工程项目的OnDraw事件中设计64位运行时界面,添加64位的OsgEarth相关依赖项,在OnCreate事件中创建图形窗口并设置给相机,调整图形窗口的大小使其自适应基础组件,所述OnCreate事件中创建的图形窗口记为三维场景;
2)新建C++类库项目,记为实体项目,在实体项目中定义所需实体类,为每一类型的实体定义属性,添加回调方法,添加序列化和反序列化方法;
3)在工程项目中添加ATL支持,根据每一个接口方法的业务逻辑完成每一个接口方法的实现供.NET或WEB使用;
4)新建C++类库项目,记为特效项目,在特效项目中定义特效操作;
5)在工程项目中定义主组件的鼠标、键盘和用户事件,并将这些事件全部暴露;
6)在工程项目中引用实体项目,添加实体节点,在三维场景中进行展示,场景地球含良好的地球操作器供用户使用;
7)在结构树上任意点击一个实体节点,查看当前实体节点的属性,属性被修改时同步修改内存数据和场景对象的属性;
8)三维场景中数据的更新会按照层次节点去更新属性,该层次节点之间的关系主要以实体节点类的继承关系为主;
9)在工程项目中定义用户接口,根据每一个接口方法的业务逻辑完成每一个接口方法的实现,编译工程项目,生成ocx组件供.NET或WEB使用。


2.一种基于OsgEarth的三维可视化组件实现系统,其特征在于:所述基于OsgEarth的三维可视化组件实现系统包括:
场景嵌入模块,在新创建的Com组件项目中,设计64位运行时界面,添加64位的OsgEarth相关依赖项,创建三维可视化基础组件为主组件;
实体定义模块,在新创...

【专利技术属性】
技术研发人员:杨森任健强麻卓肖彦科常鹏李攀
申请(专利权)人:陕西心像信息科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1