[发明专利]一种GKF三维空间数据库的创建和访问方法有效

专利信息
申请号: 201710437841.2 申请日: 2017-06-12
公开(公告)号: CN107402958B 公开(公告)日: 2020-09-15
发明(设计)人: 陈良超;薛梅;李锋;陈翰新;向泽君;何兴富;李响;王阳生;詹勇;刘局科 申请(专利权)人: 重庆市勘测院
主分类号: G06F16/22 分类号: G06F16/22;G06T17/00
代理公司: 北京科亿知识产权代理事务所(普通合伙) 11350 代理人: 汤东凤
地址: 400020 *** 国省代码: 重庆;50
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 gkf 三维空间 数据库 创建 访问 方法
【权利要求书】:

1.一种GKF三维空间数据库的创建方法,其特征在于按以下步骤进行:

A1、分析创建数据集的类型,如果是三维模型数据集,执行步骤A2;如果是三维地形数据集,执行步骤A3;如果是倾斜摄影数据集,执行步骤A4;

A2、创建三维模型数据集类型的GKF三维空间数据库,顺序执行A21-A25;

A21、三维模型数据集元数据入库,顺序执行A211-A215;

A211、获取三维模型数据集信息,所述三维模型数据集信息包括版本、UUID、名称、别名、数据制作单位、创建日期、元数据记录数、数据记录数;

A212、获取场景图层列表,所述场景图层列表为图层ID、父图层ID、图层名称元组列表;

A213、获取三维模型信息,所述三维模型信息包括名称、中心点位置、偏转和缩放值、包围盒最小点、包围盒最大点、所属图层ID、LOD数据;所述LOD数据为LOD级别,minDistance,maxDistance的元组列表;

A214、创建32字节的GKXHeader,写入GKX文件;所述GKXHeader包括GKF文件标识符、GKF版本、GKF数据集类型、GKF元数据记录数、GKF数据记录数、GKX索引文件压缩后长度、GKX索引文件原始长度和保留字段共8个字段;创建时,GKF文件标识符填充为0x4B4F4547,GKF数据集类型填充为GKF_DATASET,所述GKF_DATASET值为0x1;

A215、将A211-A213三个步骤获得的3条元数据使用AES加密算法,形成三条元数据记录;元数据记录写入GKX文件,加密数据写入GKF文件;

A22、三维模型几何数据入库,获得需要入库的所有模型列表,对每个模型执行A221-A222;

A221、获取该模型的名称、渲染选项、顶点列表、顶点法线列表、第一套纹理坐标T0、第二套纹理坐标T1、使用的纹理名称,形成二进制格式的几何数据,并使用异或加密算法,生成加密的二进制几何数据,使用ZIP算法压缩存储,记录压缩前原始长度和压缩后长度,形成压缩加密的二进制模型数据;所述渲染选项包括是否透明、是否含有光照纹理、是否双面显示、水效和玻璃材质选项;

A222、创建压缩加密的二进制模型数据对应的数据记录,写入GKX文件,将压缩加密的二进制模型数据顺序写入GKF文件;

A23、三维模型纹理数据入库,获得需要入库的所有纹理列表,对每个纹理执行A231-A232;

A231、获取该纹理二进制格式数据,并使用异或加密算法,生成加密的二进制纹理数据,使用ZIP算法压缩存储,记录压缩前原始长度和压缩后长度,形成压缩加密的二进制纹理数据;所述纹理二进制格式为DDS格式,支持DXT1、DXT3、DXT5;

A232、创建压缩加密的二进制纹理数据对应的数据记录,写入GKX文件,将压缩加密的二进制纹理数据顺序写入GKF文件;

A24、三维模型属性数据入库;

获得需要入库的所有要素列表,对每一个要素,生成属性数据,将属性数据记录写入GKX文件,将属性数据写入GKF文件;

A25、GKX数据记录入库;

对GKX文件中的元数据记录和数据记录,使用ZIP算法压缩存储,并更新压缩前原始长度和压缩后长度;

A3、创建三维地形数据集的GKF三维地形数据库,顺序执行A31-A33;

A31、三维地形数据集元数据入库;顺序执行A311-A313:

A311、获取三维地形数据集信息,所述三维地形数据集信息包括包括版本、UUID、名称、别名、数据制作单位、创建日期、元数据记录数、数据记录数、根瓦片名称、中心点位置、偏转和缩放值、包围盒最小点、包围盒最大点;

A312、创建32字节的GKXHeader,写入GKX文件;所述GKXHeader包括GKF文件标识符、GKF版本、GKF数据集类型、GKF元数据记录数、GKF数据记录数、GKX索引文件压缩后长度、GKX索引文件原始长度和保留字段共8个字段;创建时,GKF文件标识符填充为0x4B4F4547,GKF数据集类型填充为GKF_TILESET,所述GKF_TILESET值为0x2;

A313、将A311步骤获得的三维地形数据集的数据集信息使用AES加密算法进行加密,形成一条元数据记录;元数据记录写入GKX文件,加密数据写入GKF文件;

A32、三维地形瓦片数据入库,需要获得需要入库的所有三维地形瓦片列表,对每个三维地形瓦片执行A321-A322;

A321、获取该三维地形瓦片的名称、LOD信息、高程数据、纹理数据,形成二进制格式的三维地形瓦片数据,并使用异或加密算法,生成加密的二进制三维地形瓦片数据,使用ZIP算法压缩存储,记录压缩前原始长度和压缩后长度,形成压缩加密的二进制三维地形瓦片数据;

A322、创建压缩加密的二进制三维地形瓦片数据对应的数据记录,写入GKX文件,将压缩加密的二进制三维地形瓦片数据顺序写入GKF文件;

A33、GKX数据记录入库;

对GKX文件中的元数据记录和数据记录,使用ZIP算法压缩存储,并记录压缩前原始长度和压缩后长度;

A4、创建倾斜摄影模型数据集的GKF倾斜摄影模型数据库,顺序执行A41-A43;

A41、倾斜摄影模型数据集元数据入库,顺序执行A411-A414:

A411、获取倾斜摄影模型数据集信息,所述倾斜摄影模型数据集信息包括版本、UUID、名称、别名、数据制作单位、创建日期、元数据记录数、数据记录数、中心点位置、偏转和缩放值、包围盒最小点围盒最大点、采集时间、采集平台、建模平台、影像地面分辨率、成图比例尺、飞行高度、正射航向重叠度、正射旁向重叠度、精度评定日期、精度评定点数、精度评定X方向中误差、精度评定Y方向中误差、精度评定高程中误差、成果金字塔层级、成果最精细层模型的X方向分辨率、成果最精细层模型的Y方向分辨率;

A412、获取倾斜摄影模型数据集的根瓦片名称列表;

A413、创建32字节的GKXHeader,写入GKX文件;所述GKXHeader包括GKF文件标识符、GKF版本、GKF数据集类型、GKF元数据记录数、GKF数据记录数、GKX索引文件压缩后长度、GKX索引文件原始长度和保留字段共8个字段;创建时,GKF文件标识符填充为0x4B4F4547,GKF数据集类型填充为GKF_OBLIQUETILESET,所述GKF_OBLIQUETILESET值为0x3;

A414、将A411-A412步骤获得的两条元数据使用AES加密算法进行加密,形成两条元数据记录;数据记录写入GKX文件,加密数据写入GKF文件;

A42、倾斜摄影瓦片数据入库,需要获得需要入库的所有倾斜摄影瓦片列表,对每个倾斜摄影瓦片执行A421-A422;

A421、获取该倾斜摄影瓦片的名称、LOD信息、几何数据、纹理数据,形成二进制格式的倾斜摄影瓦片数据,并使用异或加密算法,生成加密的二进制倾斜摄影瓦片数据,使用ZIP算法压缩存储,记录压缩前原始长度和压缩后长度,形成压缩加密的二进制倾斜摄影瓦片数据;

A422、创建压缩加密的二进制倾斜摄影瓦片数据对应的数据记录,写入GKX文件,将压缩加密的二进制倾斜摄影瓦片数据顺序写入GKF文件;

A43、GKX数据记录入库;

对GKX文件中的元数据记录和数据记录,使用ZIP算法压缩存储,并记录压缩前原始长度和压缩后长度。

2.一种GKF三维空间数据库访问方法,其特征在于按以下步骤进行:

B1、读取GKX数据记录文件,顺序执行B211-B215;

B211、打开对应的GKX数据记录文件流,读取GKXHeader结构,所述GKXHeader结构为32字节,包括GKF文件标识符、GKF版本、GKF数据集类型、GKF元数据记录数、GKF数据记录数、GKX索引文件压缩后长度、GKX索引文件原始长度和保留字段共8个字段;

B212、读取并使用ZIP算法解压缩元数据记录和数据记录,存入BUFFER中;

B213、关闭GKX数据记录文件流;

B214、在BUFFER中读取元数据记录;

B215、在BUFFER中读取数据记录,建立数据名称和数据记录的对应Map;

B2、创建GKF文件的内存映射环境,顺序执行步骤B221-B224;

B221、使用CreateFile函数以只读模式创建GKF文件的句柄;

B222、使用GetFileSizeEx函数获取GKF文件的大小;

B223、使用CreateFileMapping函数创建GKF文件的内存映射句柄;

B224、以2GB块为单位,使用MapViewOfFile函数创建GKF文件的内存映射指针列表;一个大小为L的GKF文件,对应的内存映射指针列表项的个数为L/2GB的上取整,记为N个;前N-1个的大小为2GB,最后一个的大小为L-(N-1)*2GB;每个2GB块的块号为其在内存映射指针列表中的下标,从第0块到第N-1块,共N块;

B3、创建三维场景并动态调度访问;

分析GKF三维空间数据库对应的数据集的类型,如果是三维模型数据集,执行步骤B31;如果是三维地形数据集,执行步骤B32;如果是倾斜摄影数据集,执行步骤B33;

B31、三维模型数据集的场景创建及动态调度访问,顺序执行步骤B311-B314;

B311、读取三维模型数据集元数据,根据第0个内存映射指针,读取并在内存中解密,获得三维模型数据集的数据集信息、场景图层列表、三维模型信息三条元数据;

B312、根据三维模型信息元数据,构建网格索引,根据网格索引结构,构建三维模型树;

B313、渲染更新时,遍历三维场景树,根据视距、模型大小、配置的模型可视距离,触发模型调用请求,建立模型调用请求优先队列,并按优先队列依次进行I/O调度,读取并生成三维几何模型,通过异步的方式,放入渲染线程中,在下一次渲染帧循环中,更新场景,将场景几何节点结合到对应的场景树叶子节点之下,并更新场景树叶子节点的模型状态,完成几何模型的动态调度;

B314、在三维场景树遍历过程中,分析纹理加载情况,动态引发纹理调用请求,建立纹理调用请求优先队列,并按优先队列依次进行I/O调度,读取并生成纹理,将纹理添加并更新到对应模型中,完成纹理的动态调度;

B32、三维地形数据集的场景创建及动态调度访问,顺序执行步骤B321-B323;

B321、根据第0个内存映射指针,读取并在内存中解密,获得三维地形数据集的数据集信息;

B322、根据三维地形数据集的数据集信息,以及根瓦片名称,以及瓦片内置的三维地形金字塔索引,构建单根节点的三维地形瓦片树;

B323、渲染更新时,遍历单根节点的三维地形瓦片树,根据视距、三维地形瓦片LOD配置,触发三维地形瓦片调用请求,建立三维地形瓦片调用请求优先队列,并按优先队列依次进行I/O调度,读取并生成三维地形瓦片,通过异步的方式,放入渲染线程中,在下一次渲染帧循环中,更新场景,将三维地形瓦片结合到对应的三维地形瓦片树叶子节点之下,完成三维地形瓦片的动态调度;

B33、倾斜摄影数据集的场景创建及动态调度访问,顺序执行步骤B331-B333;

B331、根据第0个内存映射指针,读取并在内存中解密,获得倾斜摄影数据集的数据集信息、根瓦片列表;

B332、根据倾斜摄影数据集的数据集信息,以及根瓦片列表,以及瓦片内置的倾斜摄影瓦片金字塔索引,构建多根节点的倾斜摄影瓦片树;

B333、渲染更新时,遍历多根节点的倾斜摄影瓦片树,根据视距、倾斜摄影瓦片LOD配置因素,触发倾斜摄影瓦片调用请求,建立倾斜摄影瓦片调用请求优先队列,并按优先队列依次进行I/O调度,读取并生成倾斜摄影瓦片,通过异步的方式,放入渲染线程中,在下一次渲染帧循环中,更新场景,将倾斜摄影瓦片结合到对应的倾斜摄影瓦片树叶子节点之下,完成倾斜摄影瓦片的动态调度;

B4、读取GKF数据文件,顺序执行步骤B41-B42;

B41、根据动态调用请求的数据名称,通过B215步骤中建立的数据名称和数据记录的对应Map,获取其对应的数据记录;

B42、判别该数据的首和尾对应的2GB块的块号Block1和Block2;公式如下:

Block1=record.dataOffset/2GB

Block2=(record.dataOffset+record.dataLen)/2GB

如果Block1=Block2,则该数据在一个数据块内,使用Block1块号对应的内存映射指针,直接读取偏移为record.dataOffset0x7FFFFFFF,长度为record.dataLen的数据块,异或解密并根据数据类型解析,获得相应的几何数据、纹理数据、三维地形瓦片数据或者倾斜摄影瓦片数据,并返回该几何数据、纹理数据、三维地形瓦片数据或者倾斜摄影瓦片数据;

如果Block1Block2,则该数据在两个数据块内,使用Block1块号和Block2块号对应的内存映射指针,直接读取Block1块号末尾的偏移为record.dataOffset0x7FFFFFFF,长度为Block2*2GB-record.dataOffset的数据块以及Block2块号开头的偏移为0,长度为record.dataOffset+record.dataLen-Block2*2GB的数据块,前后两块合并起来,异或解密并根据数据类型解析,获得相应的几何数据、纹理数据、三维地形瓦片数据或者倾斜摄影瓦片数据,并返回该几何数据、纹理数据、三维地形瓦片数据或者倾斜摄影瓦片数据;

B5、当需要查询模型属性时,先通过模型名称找到对应的要素,根据要素查询要素属性记录,根据要素属性记录,访问GKF数据文件,获得模型属性并返回要素属性记录。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆市勘测院,未经重庆市勘测院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710437841.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top