一种GKF三维空间数据库的创建和访问方法技术

技术编号:16662870 阅读:43 留言:0更新日期:2017-11-30 11:57
本发明专利技术公开了一种GKF三维空间数据库的创建和访问方法,属于三维数字城市、三维地理信息系统领域。本发明专利技术面向三维模型、三维地形、倾斜摄影模型数据的存储及快速访问需求,提出了基于NoSQL思路和内存映射技术的GKF三维空间数据库的创建和访问方法,提升了三维模型、三维地形、倾斜摄影模型数据的存储安全性及快速访问效率。本发明专利技术顾及了三维模型、三维地形、倾斜摄影模型数据具有的海量、二进制流化、访问不需要事务支持等特点,比基于关系数据库存储的三维空间数据库,更符合三维模型、三维地形、倾斜摄影模型数据的特点,存储空间利用更紧凑,安全性更好,数据访问效率更高。

【技术实现步骤摘要】
一种GKF三维空间数据库的创建和访问方法
本专利技术属于三维数字城市、三维地理信息系统领域,特别是涉及三维空间数据库格式及其创建和访问方法。
技术介绍
三维数字城市是以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用遥感、全球定位系统、地理信息系统、遥测、仿真-虚拟等技术,对城市进行多分辨率、多尺度、多时空和多种类的三维描述,即利用信息技术手段把城市的过去、现状和未来的全部内容在网络上进行数字化虚拟实现。三维空间数据是对地形地貌、地上地下人工建筑物等基础地理信息的三维表达,反映被表达对象的三维空间位置、几何形态、纹理及属性等信息,主要包括三维地形、三维模型、倾斜摄影模型,三维模型主要分为地面模型、建筑模型、道路模型、水系模型、植被模型、地下空间设施模型及其他模型等内容。三维空间数据库是用于存放三维空间数据的数据库,主要包括三维地形数据库、三维模型数据库、倾斜摄影模型数据库。三维地形数据、三维模型数据、倾斜摄影模型数据是指采用三维地形创建软件、三维建模软件、倾斜摄影建模软件制作的三维空间数据,可以打开和编辑,并能进行坐标转换、格式转换、分层、分块、切片等操作,并将操作结果保存到三维空间数据库中。三维空间数据库通常以关系数据库或文件方式存储;三维空间数据库创建通常包括关系数据库的模式创建、入库检查、入库、入库后检查等步骤;三维空间数据库访问通常包括关系数据库打开、三维场景构建、执行SQL查询并返回结果等步骤。对于三维地形,通常支持由DEM和DOM数据经过重采样生成多级金字塔结构的三维地形瓦片,每一个三维地形瓦片包含了高程数据和纹理数据,层级的金字塔结构的三维地形瓦片适应了不同场景的加载需求;对于三维模型,通常支持LOD技术,通过不同细节层次的模型适应不同场景的模型加载需求。1976年,Clark提出了LOD(LevelsofDetail,细节层次)模型的概念,认为当物体覆盖屏幕较小区域时,可以使用该物体描述较粗的模型,并给出了一个用于可见面判定算法的几何层次模型,以便对复杂场景进行快速绘制。对于倾斜摄影模型,通常由倾斜摄影建模软件根据空三加密成果和倾斜摄影纹理,自动重建带有金字塔结构的倾斜摄影瓦片,每一个倾斜摄影瓦片包含了几何数据和纹理数据,层级的金字塔结构的倾斜摄影瓦片适应了不同场景的加载需求;NoSQL(NotOnlySQL),泛指非关系型的数据库,是一项全新的数据库革命,NoSQL数据库的四大分类:(1)键值(Key-Value)存储数据库,主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。Key指向Value的键值对,通常用hashtable来实现,查找速度快数据无结构化,通常只被当作字符串或者二进制数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。(2)列存储数据库,通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。(3)文档型数据库,该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。(4)图形(Graph)数据库,是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。NoSQL数据库在以下情况下比较适用:(1)数据模型比较简单;(2)需要灵活性更强的IT系统;(3)对数据库性能要求较高;(4)不需要高度的数据一致性;(5)对于给定key,比较容易映射复杂值的环境。(6)BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数(CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。综上所述,在三维空间数据库中,存储着海量的三维空间数据,而且每一个要素存在不同精度的LOD节点或者金字塔叶节点。由于普通计算机的硬件有限,现有的基于关系型数据库的三维空间数据库速度慢、效率低,因此如何高效存储和调度三维空间数据,就成了比较迫切的问题。
技术实现思路
有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是面向三维模型、三维地形、倾斜摄影模型数据的存储及快速访问。为实现上述目的,本专利技术提供了一种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算法压缩存储,记录压缩前原始长度和压缩后长度,形成压缩加密的二进制模型数据;所述模型渲染选项包括是否透明、是否含有光照纹理、是否双面显示、水效和玻璃本文档来自技高网
...
一种GKF三维空间数据库的创建和访问方法

【技术保护点】
一种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数据...

【技术特征摘要】
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、获取该倾斜摄影瓦片的名称...

【专利技术属性】
技术研发人员:陈良超薛梅李锋陈翰新向泽君何兴富李响王阳生詹勇刘局科
申请(专利权)人:重庆市勘测院
类型:发明
国别省市:重庆,50

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

1