面向安全生产的三维模型制作加载显示系统及方法与流程

文档序号:17844447发布日期:2019-06-11 21:34阅读:487来源:国知局
面向安全生产的三维模型制作加载显示系统及方法与流程

本发明属于地理信息技术领域,尤其是涉及一种面向安全生产的三维模型制作加载显示系统及方法。



背景技术:

三维模型是地理空间信息中重要的一种数据模型,相比于二维地理空间数据,可以给人带来更加立体化、逼真化的环境感知。安全生产三维模型主要包括生产企业内的建筑、厂房、生产设备、传感器等,其中建筑、厂房模型相对较为简单,而通用的生产设备模型一般可以重复利用。

现有技术中,针对三维模型的制作,一般使用专业建模软件和相关数据格式转换软件进行三维模型的制作,在该方法中:1.将已有三维模型数据转换为所需格式的三维模型数据;2.使用三维建模软件进行建模制作三维模型数据;3.使用gis矢量数据转换为cad格式数据,并使用cad软件添加高度属性,进一步的在3dmax等建模软件中生成三维模型;4.使用文件形式存储三维模型。

从上述描述中可以看出,现有的技术方案中存在以下问题:1.使用gis矢量数据制作三维模型时工序复杂,专业性强;2.gis矢量数据和三维模型文件单独存储,没有建立联系,在二三维一体化应用场景下维护性较弱。



技术实现要素:

有鉴于此,本发明旨在提出一种面向安全生产的三维模型制作加载显示系统,以大大降低了三维模型制作的复杂性,并实现二三维联动编辑显示。

为达到上述目的,本发明的技术方案是这样实现的:

面向安全生产的三维模型制作加载显示系统,包括加载显示模块、编辑模块、服务调度模块、存储模块、格式转换模块、坐标转换模块,

所述加载显示模块包括二维模型加载显示模块、三维模型加载显示模块、二三维模型联动模块,所述二维模型加载显示模块使用openlayers实现json格式和要素地图服务格式的二维矢量数据的加载显示;所述三维模型加载显示模块使用cesiumjs实现三维模型数据的加载显示;所述二三维模型联动模块实现二三维模型联动显示;

所述编辑模块包括二维矢量数据编辑模块、三维模型数据编辑模块、二三维编辑联动更新模块,所述二维矢量数据编辑模块使用openlayers实现二维图形编辑;所述三维模型数据编辑模块使用cesiumjs实现三维模型的编辑;所述二三维编辑联动更新模块实现二维矢量数据编辑和三维模型数据编辑的同一实体相关数据的联动更新;

所述服务调度模块包括二维矢量数据保存模块、三维模型数据保存模块、三维瓦片生成模块、数据发布模块,各个模块均提供web服务调用接口;

所述二维矢量数据保存模块实现接收web端json格式的数据,调用存储模块写入存储介质,并调用格式转换模块将二维矢量数据生成三维模型数据,最终调用存储模块写入存储介质;

所述三维模型数据保存模块实现接收web端传递的三维模型数据文件和相关参数,调用格式转换模块转换成统一的三维模型数据格式,并解析出三维模型的三维空间坐标,转换为二维矢量坐标存储到对应的二维矢量数据库中;

所述三维瓦片生成模块实现将批量的三维模型或指定的三维模型按照地理空间坐标和拓扑关系生成三维瓦片数据集;

所述数据发布模块实现二维矢量数据和三维模型数据的web服务调用接口;

所述存储模块实现各类数据在存储介质上的读写;

所述格式转换模块实现不同格式三维模型数据之间的相互转换,同时实现二维矢量数据与三维模型数据之间的相互转换;

所述坐标转换模块通过四参数坐标转换法或七参数坐标转换法不同坐标系之间的相互转换。

相对于现有技术,本发明所述的系统具有以下优势:

(1)在二维矢量数据制作的基础上增加三维属性(高度和纹理)制作三维模型,大大降低了三维模型制作的复杂性。

(2)通过二维矢量数据和三维模型的联动更新机制提高了二三维数据的一致性,提高了二三维一体化应用体验。

(3)针对生产安全领域,提供了标准设备的三维模型库,可以极大简化三维模型的制作流程,提高模型制作效率。

本发明创造的另一目的在于提出一种面向安全生产的三维模型制作方法,技术方案如下:

一种面向安全生产的三维模型制作方法,包括如下步骤:

1)通过openlayers创建二维图形,或者通过读取二维矢量数据创建二维图形(当读取的二维矢量数据的坐标与系统坐标系不一致时,调用坐标转换模块进行坐标转换),并添加高度属性;

2)利用ajax调用后台服务接口,将步骤1中的二维图形数据存储到二维矢量数据库中;

3)读取步骤2中二维矢量数据库中存储的二维图形数据并转换成三维模型数据;

4)加载步骤3中转换得到的三维模型数据,在浏览器端加载显示三维模型。

进一步的,所述步骤3的转换方法为:读取二维矢量数据库中存储的二维图形数据的坐标串和高度属性,构建三维几何体的坐标;将构建的三维几何体划分成三角面,最终按照.obj格式的要求写成.obj文件进行保存。

进一步的,还包括在三维模型数据编辑后联动更新二维矢量数据,其更新方法包括如下步骤:

11)通过cesiumjs加载三维模型数据并进行三维模型显示;

12)调整步骤11中的三维模型的角度和缩放比例,并将调整的参数通过ajax调用后台服务接口保存到数据库中;

13)读取步骤12中的参数,计算该三维模型在平面上的投影图形数据;

14)将步骤13中计算的投影图形数据更新到二维矢量数据库中;

15)读取步骤14中存储的二维矢量数据并转换为json格式,通过webservice返回,进行二维模型显示;

16)解析步骤15中返回的json格式的二维矢量数据,并进行绘制显示替换原有的二维矢量图形。

所述方法与上述系统相对于现有技术所具有的优势相同,在此不再赘述。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例二三维编辑联动更新的示意图;

图2为本发明实施例根据二维矢量数据的坐标串和高度属性构建三维几何体的坐标示意图;

图3为本发明实施例件三维几何体划分成三角面的示意图;

图4为本发明实施例保存的.obj格式文件的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面将参考附图并结合实施例来详细说明本发明。

面向安全生产的三维模型制作加载显示系统,包括加载显示模块、编辑模块、服务调度模块、存储模块、格式转换模块、坐标转换模块,

所述加载显示模块包括二维模型加载显示模块、三维模型加载显示模块、二三维模型联动模块,所述二维模型加载显示模块使用openlayers实现json格式和要素地图服务格式的二维矢量数据的加载显示;所述三维模型加载显示模块使用cesiumjs实现多种来源和多种数据格式(如三维瓦片)的三维模型数据的加载显示,实现三维模型数据文件的导入和预览;所述二三维模型联动模块实现二三维模型联动。

具体的,所述二三维模型联动模块实现将二维图形数据转换成三维模型数据的方法,包括如下步骤:

步骤31)如图2所示,读取二维矢量数据库中存储的二维图形数据的坐标串(x1y1x2y2……)和高度属性(h),构建三维几何体的坐标;

步骤32)如图3所示,将构建的三维几何体划分成三角面,最终按照.obj格式的要求写成.obj文件进行保存,如图4所示,并作为中间格式文件,可以转换成其它格式的三维模型数据。

所述编辑模块包括二维矢量数据编辑模块、三维模型数据编辑模块、二三维编辑联动更新模块,

所述二维矢量数据编辑模块使用openlayers中的draw、select、modify等鼠标交互组件实现二维图形编辑,并通过ajax调用webservice服务将二维图形的空间坐标和属性转换为json数据存储到二维矢量数据库中,可实现二维图形点、线、面的绘制、修改、删除和属性设置(需要设置基准和高度等三维属性);

所述三维模型数据编辑模块使用cesiumjs中的鼠标点击选中三维模型,启用编辑后显示三维坐标轴,通过设置三维坐标平移量、旋转角度、缩放比例等参数实现三维模型的位置移动、三轴旋转、缩放、删除等模型操作以及选中单个模型进行纹理的添加、替换、删除等操作(其中,利用cesiumjs的imagematerialproperty等接口设置纹理的引用路径从而达到纹理修改的目的);编辑完成后调用后台接口更新数据库(或原始三维模型文件中相关纹理的引用路径)。

所述二三维编辑联动更新模块实现二维矢量数据编辑和三维模型数据编辑的通讯、同一实体相关数据的联动更新,如图1所示;

具体的,根据二维矢量数据编辑更新三维模型数据的方法,包括如下步骤:

步骤1)通过所述二维矢量数据编辑模块创建二维图形,即通过openlayers创建二维图形,并添加高度属性;

步骤2)利用ajax调用后台服务接口,即通过服务调度模块将步骤1中的二维图形数据存储到二维矢量数据库中;

步骤3)调用所述格式转换模块读取步骤2中二维矢量数据库中存储的二维图形数据并转换成三维模型数据(例如文件格式.obj);

步骤4)通过所述三维模型加载显示模块调用后台服务接口,加载步骤3中转换得到的三维模型数据,在浏览器端加载显示三维模型,替换原三维模型。

具体的,根据三维模型数据编辑更新二维矢量数据的方法,包括如下步骤:

步骤11)通过三维模型加载显示模块加载三维模型数据,即通过cesiumjs加载三维模型数据并进行三维模型显示;

步骤12)通过三维模型数据编辑模块调整步骤11中的三维模型的角度和缩放比例,并将调整的参数通过ajax调用后台服务接口,即通过服务调度模块保存到数据库中;

步骤13)读取步骤12中的参数,计算该三维模型在平面上的投影图形数据;

步骤14)将步骤13中计算的投影图形数据更新到二维矢量数据库中;

步骤15)读取步骤14中存储的二维矢量数据并转换为json格式,通过webservice返回给所述二维模型加载显示模块;

步骤16)通过二维模型加载显示模块解析步骤15中返回的json格式的二维矢量数据,并进行绘制显示,替换原有二维矢量图形。

所述服务调度模块包括二维矢量数据保存模块、三维模型数据保存模块、三维瓦片生成模块、数据发布模块,各个模块均提供web服务调用接口;

所述二维矢量数据保存模块实现接收web端json格式(含geojson格式)的数据,并根据传递的参数执行创建、更新、删除等操作;调用存储模块写入存储介质,具体的,二维矢量数据写入关系型数据库中进行格式化存储,同时维护相关图层的空间元数据和空间索引,并调用格式转换模块将二维矢量数据生成三维模型数据,最终调用存储模块写入存储介质;

所述三维模型数据保存模块实现接收web端传递的三维模型数据文件(包含几何坐标和纹理资源等)和相关参数,调用格式转换模块转换成统一的三维模型数据格式,并解析出三维模型的三维空间坐标,转换为二维矢量坐标存储到对应的二维矢量数据库中;

所述三维瓦片生成模块实现将批量的三维模型或指定的三维模型按照地理空间坐标和拓扑关系生成三维瓦片数据集,三维瓦片数据集中包含了树形结构的节点信息,树形结构使用四叉树和相应变种树形结构进行遍历搜索(针对安全生产应用领域,在常规四叉树分割的基础上引入企业厂区图的概念,以单个企业的三维模型的外包立方体作为四叉树的一个节点,为提高效率,判断三维模型的包含关系时先使用二维矢量数据进行计算判断,其余分割搜索过程保持不变),搜索时利用二维矢量数据和空间元数据等信息计算树形节点分布,进一步使用三维模型实体的空间拓扑关系(如包含、被包含)对树形节点的lod(levelsofdetail)信息进行更新维护,进一步根据室内模型添加的相关属性对树形节点的lod信息进行更新维护,提供瓦片批量生成、局部更新的接口,瓦片更新周期包括实时、定期、手动三种模式;

所述数据发布模块实现二维矢量数据和三维模型数据的web服务调用接口,根据请求参数返回二维矢量数据和三维瓦片数据,二维矢量数据返回json格式,三维瓦片返回json格式(包含模型文件的url地址)。

所述存储模块实现各类数据在存储介质上的读写,根据存储策略设置,存储介质包括hadoop、oracle、mysql、sqlserver、postgresql、3dcitydb等,一般将模型文件的描述信息存储在关系型数据库中,模型本身的几何数据和纹理等以hdfs形式进行存储。

所述格式转换模块实现不同格式三维模型数据之间的相互转换,如citygml、3dtiless、gltf、obj、collada等格式的相互转换,同时实现二维矢量数据(shapefile、geojson等)格式和gltf格式的三维模型数据之间的相互转换。

所述坐标转换模块实现不同坐标系之间的转换,在需要进行坐标转换时直接调用此模块即可,例如当读取二维矢量数据的坐标与系统坐标系不一致时,调用坐标转换模块进行坐标转换;不同坐标系例如地方坐标系、cgs2000坐标系等相互转换,提供批量坐标转换和单个坐标转换的后台接口和web服务调用接口,同时实现三维瓦片格式中规定的坐标转换矩阵的计算;具体的,坐标转换使用四参数法坐标转换或七参数法坐标转换进行解算,需要搜集具体地方坐标系与cgs2000坐标系的转换参数,七参数应用解释如下:

七参数法坐标转换(包括布尔莎模型,一步法模型,海尔曼特等)是解决此问题的比较严密和通用的方法1。其涉及到的七个参数为:x平移,y平移,z平移,x旋转,y旋转,z旋转,尺度变化m。此七个参数可以通过在需要转化的区域里选取3个以上的转换控制点对而获取。

如果区域范围不大,最远点间的距离不大于30km,可以用三参数(莫洛登斯基模型),即x平移,y平移,z平移,而此时将x旋转,y旋转,z旋转,尺度变化m视为0。所以三参数只是七参数的一种特例。三参数只需通过1个控制点对就能获取。

通常地,针对安全生产领域的各类通用设备和传感器等,通过上述系统先期制作出一套三维模型库(叉车三维模型、厢式货车三维模型、储油罐三维模型、储气罐三维模型、数控机床三维模型、球机摄像头三维模型、枪机摄像头三维模型、……)。

本发明一种面向安全生产的三维模型制作方法,包括如下步骤:

1)通过openlayers创建二维图形,或者通过读取二维矢量数据创建二维图形(当读取的二维矢量数据的坐标与系统坐标系不一致时,调用坐标转换模块进行坐标转换),并添加高度属性;

2)利用ajax调用后台服务接口,将步骤1中的二维图形数据存储到二维矢量数据库中;

3)读取步骤2中二维矢量数据库中存储的二维图形数据并转换成三维模型数据;

4)加载步骤3中转换得到的三维模型数据,在浏览器端加载显示三维模型。

进一步的,所述步骤3的转换方法为:读取二维矢量数据库中存储的二维图形数据的坐标串和高度属性,构建三维几何体的坐标;将构建的三维几何体划分成三角面,最终按照.obj格式的要求写成.obj文件进行保存。

进一步的,还包括在三维模型数据编辑后联动更新二维矢量数据,其更新方法包括如下步骤:

11)通过cesiumjs加载三维模型数据并进行三维模型显示;

12)调整步骤11中的三维模型的角度和缩放比例,并将调整的参数通过ajax调用后台服务接口保存到数据库中;

13)读取步骤12中的参数,计算该三维模型在平面上的投影图形数据;

14)将步骤13中计算的投影图形数据更新到二维矢量数据库中;

15)读取步骤14中存储的二维矢量数据并转换为json格式,通过webservice返回,进行二维模型显示;

16)解析步骤15中返回的json格式的二维矢量数据,并进行绘制显示替换原有的二维矢量图形。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1