基于三维gis切换多个精细化控制场景的方法及装置制造方法

文档序号:6551230阅读:183来源:国知局
基于三维gis切换多个精细化控制场景的方法及装置制造方法
【专利摘要】本发明提供一种基于三维GIS切换多个精细化控制场景的方法及装置,所述方法包括以下步骤:在显示三维GIS的视域中场景时,根据当前的视角范围检索预见区域的模型数据,并生成若干个预见区域场景的工作空间文件后调入场景缓存中;当接收到场景切换请求时,根据所述场景切换请求中的目标场景信息判断所述场景缓存中是否已经存在目标场景的工作空间文件;若是,则从所述场景缓存中读取出目标场景的工作空间文件,进行解析得到场景组织缓存文件以及场景布局缓存文件,并将所述场景组织缓存文件以及场景布局缓存文件加载到三维GIS中进行显示。本发明的一种基于三维GIS切换多个精细化控制场景的方法及装置,极大地提高了精细化控制场景的切换速度以及流畅性。
【专利说明】基于三维GIS切换多个精细化控制场景的方法及装置

【技术领域】
[0001] 本发明涉及地理信息系统,特别是涉及一种基于三维GIS切换多个精细化控制场 景的方法以及一种基于三维GIS切换多个精细化控制场景的装置。

【背景技术】
[0002] 随着三维GIS (Geographic Information System,地理信息系统)应用的不断普及 与深入,不少用户对更为详细、更高精度的地理信息提出了迫切需求,正推动着地表精细化 建模的研究与发展。
[0003] 在三维GIS精细化环境控制中,三维可视化集中控制场景分布比较多而广,需要 快速切换不同的精细化场景进行控制。传统的场景切换方法中,三维GIS会将每个控制场 景所有数据读入场景中完全显示。但是精细化场景的数据比较大,模型数量也比较多,如果 把所有资源加载后进行完全显示,这样不仅会占用大量显存、物理内存和虚拟内存,而且所 花的时间也比较长,导致精细化控制场景的切换速度比较慢。


【发明内容】

[0004] 基于此,本发明提供一种基于三维GIS切换多个精细化控制场景的方法及装置, 能够快速切换精细化控制场景。
[0005] 为实现上述目的,本发明采用如下的技术方案:
[0006] 一种基于三维GIS切换多个精细化控制场景的方法,包括以下步骤:
[0007] 在显示三维GIS的视域中场景时,根据当前的视角范围检索预见区域的模型数 据,并生成若干个预见区域场景的工作空间文件后调入场景缓存中;
[0008] 当接收到场景切换请求时,根据所述场景切换请求中的目标场景信息判断所述场 景缓存中是否已经存在目标场景的工作空间文件;
[0009] 若是,则从所述场景缓存中读取出目标场景的工作空间文件,进行解析得到场景 组织缓存文件以及场景布局缓存文件,并将所述场景组织缓存文件以及场景布局缓存文件 加载到三维GIS中进行显示。
[0010] 一种基于三维GIS切换多个精细化控制场景的装置,包括:
[0011] 区域检索模块,用于在显示三维GIS的视域中场景时,根据当前的视角范围检索 预见区域的模型数据,并生成若干个预见区域场景的工作空间文件后调入场景缓存中;
[0012] 判断模块,用于当接收到场景切换请求时,根据所述场景切换请求中的目标场景 信息判断所述场景缓存中是否已经存在目标场景的工作空间文件;
[0013] 显示模块,用于在所述判断模块的判断结果为是的情况下,从所述场景缓存中读 取出目标场景的工作空间文件,进行解析得到场景组织缓存文件以及场景布局缓存文件, 并将所述场景组织缓存文件以及场景布局缓存文件加载到三维GIS中进行显示。
[0014] 由以上方案可以看出,本发明的一种基于三维GIS切换多个精细化控制场景的方 法及装置,在显示视域中场景的同时将预见区域的模型数据调入场景缓存,并且用组织文 件与布局文件来管理三维GIS场景的模型数据。采用本发明的这种按需读取模型的方式, 不会将每个控制场景所有数据读入场景中完全显示,提高了模型的加载速度,不仅不会占 用太多显存,而且减少了等待场景切换的时间,从而极大地提高了精细化控制场景的切换 速度以及流畅性,能够动态高效地进行检索并显示精细化控制室环境。

【专利附图】

【附图说明】
[0015] 图1为本发明的一种基于三维GIS切换多个精细化控制场景的方法流程示意图;
[0016] 图2为本发明的一种基于三维GIS切换多个精细化控制场景的装置结构示意图。

【具体实施方式】
[0017] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0018] 实施例一
[0019] 参见图1所示,一种基于三维GIS切换多个精细化控制场景的方法,包括以下步 骤:
[0020] 步骤S101,在显示三维GIS的视域中场景时,根据当前的视角范围检索预见区域 的模型数据,并生成若干个预见区域场景的工作空间文件后调入场景缓存中,然后进入步 骤 S102。
[0021] 步骤S102,当接收到场景切换请求时,根据所述场景切换请求中的目标场景信息 判断所述场景缓存中是否已经存在目标场景的工作空间文件,若是,则进入步骤S103。
[0022] 步骤S103,若场景缓存中已经存在目标场景的工作空间文件,则直接从所述场景 缓存中读取出目标场景的工作空间文件,并进行解析得到场景组织缓存文件以及场景布局 缓存文件,然后将所述场景组织缓存文件以及场景布局缓存文件加载到三维GIS中进行显 /_J、1 〇
[0023] 作为一个较好的实施例,本发明步骤S101中生成所述工作空间文件的过程具体 可以包括如下步骤:
[0024] 步骤S1011,根据在三维显示系统中所编辑好的三维GIS场景模型业务组织关系 生成场景组织文件。
[0025] 本发明实施例中的场景组织文件是指对场景数据进行组织的文件,一般为 xml (Extensible Markup Language,可扩展标记语言)格式的文件。例如在其中一个实施例 中,场景组织文件可以为如下格式:
[0026] 〈organization〉 〈squadron 1 name=" 中队 1" level=" Γ> <squadl name="班 Γ level="2"> <car> 〈carl path="paomoshuiguanche_car.mesh" nurnbei-'T' /> <car2 path="shuiguanche_car.mesh" number="2" />
[0027] </car> < squad l/> < squadron 1 /> </ organization >
[0028] 例如,应用客户端在界面上编辑消防组织,如某中队有三种类型的泡沫水罐车、泡 沫水罐车有两种类型的枪,以及消防人员的消息等。组织好相关结构后,在界面上生成初始 场景,并用二进制方式把组织模型缓存到客户端文件,即为场景组织文件。
[0029] 步骤S1012,加载所述场景组织文件,将所述场景组织文件序列化成三维场景模型 数据,并进行压缩生成场景组织缓存文件。本发明采用高效的压缩算法来对二进制流进行 压缩处理,从而减少了存储空间、降低了数据传输量,提高了系统资源利用率和传输速度, 使大场景数据的加载和浏览顺畅自如。
[0030] 步骤S1013,建立模型索引,保存多份场景之间的关联信息,用于视角场景的模型 检索。在其中一个实施例中,可以采用四叉树方式来建立所述模型索引。
[0031] 需要说明的是,当需要生成多份场景组织缓存文件时,重复上述步骤S1011至步 骤S1013即可。
[0032] 步骤S1014,根据控制场景的业务布局信息生成场景布局文件,将所述场景布局文 件序列化成具有地理坐标属性的三维场景模型数据,并进行压缩生成场景布局缓存文件。
[0033] 本发明实施例中的场景布局文件为对场景数据进行布局设置的文件,文件内可以 包括位置和朝向、比例等信息,例如在其中一个实施例中,场景布局文件可以为如下格式:
[0034] 〈archives〉 <sceneobjlist> <carlist> <car()>
[0035] <pos>-177.814 -0.027491 22.447</pos> <ori> 1 0 0 0</ori> <scale>l 1 l</scale> <meshname>layout_shuiguancar.mesh</meshname> </car0> </carlist> </sceneobjlist> 〈/archives〉
[0036] 例如,应用客户端在界面上编辑消防布局文件,如某中队出两类型的泡沫水罐车、 每泡沫水罐车出两种类型的枪、出去的消防人员的消息等。保存结构以及相关特性属性信 息以生成场景布局文件,并建立与场景组织文件的索引方式。
[0037] 需要说明的是,重复步骤S1014,可以生成多份场景布局缓存文件。
[0038] 步骤S1015,根据所述场景组织缓存文件、场景布局缓存文件以及关联信息生成场 景的工作空间文件。应用客户端加载工作空间文件,可快速从缓存中读取模型到内存。
[0039] 本发明实施例中的工作空间文件为场景组织缓存文件与场景布局缓存文件的汇 总,一个工作空间文件对应一个场景,当应用客户端切换场景的工作空间文件时,即切换场 景,通过索引文件,检索缓存与内存,快速加载没有加载的模型。
[0040] 另外,作为一个较好的实施例,本发明步骤S103中将所述场景组织缓存文件以及 场景布局缓存文件加载到三维GIS中进行显示的过程具体可以包括如下步骤:
[0041] 步骤S1031,反序列化所述场景组织缓存文件,并判断所述场景组织缓存文件中是 否存在模型缓存;
[0042] 步骤S1032,若所述场景组织缓存文件中存在模型缓存,则从所述场景组织缓存文 件中读取出模型,并建立索引表;
[0043] 步骤S1033,反序列化所述场景布局缓存文件,得到场景模型布局信息;作为一个 较好的实施例,所述模型布局信息可以包括:模型的位置、朝向以及比例信息等;
[0044] 步骤S1034,将所述模型以及模型布局信息加载到三维GIS中进行显示。
[0045] 在另外一个实施例中,若步骤S1031中判断得出所述场景组织缓存文件中不存在 模型缓存,则可以包括如下步骤:
[0046] 步骤S1035,创建出新的模型,并定义特有模型布局的属性;
[0047] 步骤S1036,根据所述模型布局的属性查找到对应位置,并把所创建的模型挂载在 指定节点。
[0048] 另外,作为一个较好的实施例,本发明在步骤S103将所述场景组织缓存文件以及 场景布局缓存文件加载到三维GIS中进行显示之后,还可以包括如下步骤:
[0049] 步骤S104,在切换三维GIS精细化控制场景后,判断所述场景布局缓存文件是否 发生变化;
[0050] 步骤S105,若所述场景布局缓存文件发生变化,则反序列化所述场景布局缓存文 件,根据得到的场景模型布局信息来修改场景模型的位置、朝向以及比例信息;
[0051] 步骤S106,判断所述场景组织缓存文件是否发生变化;
[0052] 步骤S107,若所述场景组织缓存文件发生变化,则根据场景组织文件的层次内容 检测三维GIS场景缓存,并判断场景缓存中是否已经存在模型数据;
[0053] 步骤S108,若场景缓存中已经存在模型数据,则建立索引表,关联模型数据路径并 读入模型数据;
[0054] 步骤S109,若场景缓存中不存在模型数据,则加载模型到场景组织缓存文件中,并 建立索引表;
[0055] 步骤S110,判断三维GIS场景是否发生变化;
[0056] 步骤S111,若三维GIS场景发生变化,则读取当前场景模型的位置、朝向以及比例 信息,并将所述信息实时存入场景布局文件,保存新的场景布局文件到工作空间文件。
[0057] 实施例二
[0058] 在本发明的实施例一中,通过三维场景按业务组织文件生成场景缓存组织文件, 按业务布局文件来定制三维场景的特性,保存三维场景到场景工作空间,这样带来了快速 检索模型数据、高效缓存动态切换三维场景精细控制场景的有益效果。在本实施例中,通过 对三维GIS场景按视角检索预见的缓存模型文件,在显示视域中场景的同时将预见的模型 数据调入场景缓存,用简单扩展可见区域范围的方法,将视角动态方向设定预见区域,这样 可以带来三维场景快速切换实时、平滑和连续性的精细化控制场景的有益效果。具体过程 可以包括如下:
[0059] 步骤S201,将不同数据格式的模型数据,按照区域,采用四叉树建立模型空间索 引;
[0060] 步骤S202,初始化三维场景,读入初始可见模型数据;
[0061] 步骤S203,开始场景漫游,同时启动数据调度线程;
[0062] 步骤S204,三维GIS场景按视角实时检索模型数据;
[0063] 步骤S205,检索场景组织缓冲文件是否存在模型,如果存在,则从场景组织缓冲文 件加载模型;
[0064] 步骤S206,如果场景组织缓冲文件不存在模型,则场景组织缓冲文件创建新的模 型,并定义特有布局的属性;
[0065] 步骤S207,根据动态创建的模型组织属性,找到对应位置把模型挂载在指定节 占.
[0066] 步骤S208,判断可见模型数据是否全部在内存中,如果没有全部在内存则启动模 型数据调度线程,否则直接执行下一步;
[0067] 步骤S209,刷新三维场景,若可见区域改变则启动模型量数据调度线程;
[0068] 步骤S210,根据视角范围,设定预见模型数据,并返回到步骤S204。需要说明的 是,本发明实施例场景中的数据可以划分为可见、预见和不可见数据。为了避免在地形漫游 时实时的数据调度影响漫游的效果,预见区域的计算和预见数据的调度成了关键所在。在 三维场景漫游时,视点的运动趋势是随机的,因此预见区域的选择要包括不同运动趋势可 能显示的范围。预见区域如果太大或太小都会影响到漫游的连贯性和实时性。本申请方案 按视角设置预见区域,避免了全部设置为可见区域所导致的漫游太卡的现象。
[0069] 在其中一个实施例中,三维GIS场景按视角检索控制室,如果从缓存内存没有检 索到相关数据,则根据创建的模型组织及布局内容,动态更新场景组织文件、场景布局文件 以及工作空间文件,按视角方向动态检索控制室,并把模型后台实时加载并根据实时视点 时行调度显示。
[0070] 另外,与上述一种基于三维GIS切换多个精细化控制场景的方法相对应,本发明 还提供一种基于三维GIS切换多个精细化控制场景的装置,如图2所示,包括:
[0071] 区域检索模块101,用于在显示三维GIS的视域中场景时,根据当前的视角范围检 索预见区域的模型数据,并生成若干个预见区域场景的工作空间文件后调入场景缓存中;
[0072] 判断模块102,用于当接收到场景切换请求时,根据所述场景切换请求中的目标场 景信息判断所述场景缓存中是否已经存在目标场景的工作空间文件;
[0073] 显示模块103,用于在所述判断模块的判断结果为是的情况下,从所述场景缓存 中读取出目标场景的工作空间文件,进行解析得到场景组织缓存文件以及场景布局缓存文 件,并将所述场景组织缓存文件以及场景布局缓存文件加载到三维GIS中进行显示。
[0074] 作为一个较好的实施例,所述区域检索模块可以包括:
[0075] 场景组织文件生成模块,用于根据在三维显示系统中所编辑好的三维GIS场景模 型业务组织关系生成场景组织文件;
[0076] 场景组织缓存文件生成模块,用于加载所述场景组织文件,将所述场景组织文件 序列化成三维场景模型数据,并进行压缩生成场景组织缓存文件;
[0077] 关联信息保存模块,用于建立模型索引,保存多份场景之间的关联信息;
[0078] 场景布局缓存文件生成模块,用于根据控制场景的业务布局信息生成场景布局文 件,将所述场景布局文件序列化成具有地理坐标属性的三维场景模型数据,并进行压缩生 成场景布局缓存文件;
[0079] 工作空间文件生成模块,用于根据所述场景组织缓存文件、场景布局缓存文件以 及关联信息生成场景的工作空间文件。
[0080] 作为一个较好的实施例,所述显示模块可以包括:
[0081] 模型缓存判断模块,用于反序列化所述场景组织缓存文件,并判断所述场景组织 缓存文件中是否存在模型缓存;
[0082] 模型读取模块,用于在所述模型缓存判断模块的判断结果为是的情况下,从所述 场景组织缓存文件中读取出模型,并建立索引表;
[0083] 模型布局信息获取模块,用于反序列化所述场景布局缓存文件,得到场景模型布 局信息;
[0084] 加载模块,用于将所述模型以及模型布局信息加载到三维GIS中进行显示。
[0085] 上述一种基于三维GIS切换多个精细化控制场景的装置的其它技术特征与本发 明的一种基于三维GIS切换多个精细化控制场景的方法相同,此处不予赘述。
[0086] 与现有技术相比,本发明的一种基于三维GIS切换多个精细化控制场景的方法及 装置具有如下的有益效果:
[0087] 1)由于三维GIS场景按场景组织文件生成场景缓存组织文件,按场景布局文件来 定制三维场景的特性,并保存三维GIS场景到场景工作空间,因此能够快速检索模型数据, 高效缓存动态切换三维场景精细控制场景;
[0088] 2)在显示视域中场景的同时将预见的模型的数据调入场景缓存,用简单扩展可见 区域范围的方法,因此三维GIS场景能够快速切换实时、平滑和连续性的精细化控制场景;
[0089] 3)不会将每个控制场景的所有数据读入场景中完全显示,用组织场景缓存进行共 享元模型,减少了内存的消耗;
[0090] 4)能够动态变化组织与布局,更换内存或缓存文件,因此能够更加快速的切换场 景,减少了等待切换场景的时间;
[0091] 5)可以为所有图层在特定细节等级处动态创建组织缓存、布局缓存,避免了按需 缓存的性能和内在代价。
[〇〇92] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1. 一种基于三维GIS切换多个精细化控制场景的方法,其特征在于,包括以下步骤: 在显示三维GIS的视域中场景时,根据当前的视角范围检索预见区域的模型数据,并 生成若干个预见区域场景的工作空间文件后调入场景缓存中; 当接收到场景切换请求时,根据所述场景切换请求中的目标场景信息判断所述场景缓 存中是否已经存在目标场景的工作空间文件; 若是,则从所述场景缓存中读取出目标场景的工作空间文件,进行解析得到场景组织 缓存文件以及场景布局缓存文件,并将所述场景组织缓存文件以及场景布局缓存文件加载 到三维GIS中进行显示。
2. 根据权利要求1所述的基于三维GIS切换多个精细化控制场景的方法,其特征在于, 生成所述工作空间文件的过程包括: 根据在三维显示系统中所编辑好的三维GIS场景模型业务组织关系生成场景组织文 件; 加载所述场景组织文件,将所述场景组织文件序列化成三维场景模型数据,并进行压 缩生成场景组织缓存文件; 建立模型索引,保存多份场景之间的关联信息; 根据控制场景的业务布局信息生成场景布局文件,将所述场景布局文件序列化成具有 地理坐标属性的三维场景模型数据,并进行压缩生成场景布局缓存文件; 根据所述场景组织缓存文件、场景布局缓存文件以及关联信息生成场景的工作空间文 件。
3. 根据权利要求2所述的基于三维GIS切换多个精细化控制场景的方法,其特征在于, 所述建立模型索引的过程包括:采用四叉树方式来建立所述模型索引。
4. 根据权利要求2所述的基于三维GIS切换多个精细化控制场景的方法,其特征在于, 将所述场景组织缓存文件以及场景布局缓存文件加载到三维GIS中进行显示的过程包括: 反序列化所述场景组织缓存文件,并判断所述场景组织缓存文件中是否存在模型缓 存; 若所述场景组织缓存文件中存在模型缓存,则从所述场景组织缓存文件中读取出模 型,并建立索引表; 反序列化所述场景布局缓存文件,得到场景模型布局信息; 将所述模型以及模型布局信息加载到三维GIS中进行显示。
5. 根据权利要求4所述的基于三维GIS切换多个精细化控制场景的方法,其特征在于, 还包括步骤: 若所述场景组织缓存文件中不存在模型缓存,则创建出新的模型,并定义特有模型布 局的属性; 根据所述模型布局的属性查找到对应位置,并把所创建的模型挂载在指定节点。
6. 根据权利要求4所述的基于三维GIS切换多个精细化控制场景的方法,其特征在于, 所述模型布局信息包括:模型的位置、朝向以及比例信息。
7. 根据权利要求6所述的基于三维GIS切换多个精细化控制场景的方法,其特征在于, 在将所述场景组织缓存文件以及场景布局缓存文件加载到三维GIS中进行显示之后,还包 括步骤: 在切换三维GIS精细化控制场景后,判断所述场景布局缓存文件是否发生变化; 若所述场景布局缓存文件发生变化,则反序列化所述场景布局缓存文件,根据得到的 场景模型布局信息来修改场景模型的位置、朝向以及比例信息; 判断所述场景组织缓存文件是否发生变化; 若所述场景组织缓存文件发生变化,则根据场景组织文件的层次内容检测三维GIS场 景缓存,并判断场景缓存中是否已经存在模型数据; 若场景缓存中已经存在模型数据,则建立索引表,关联模型数据路径并读入模型数 据; 若场景缓存中不存在模型数据,则加载模型到场景组织缓存文件中,并建立索引表; 判断三维GIS场景是否发生变化; 若三维GIS场景发生变化,则读取当前场景模型的位置、朝向以及比例信息,并将所述 信息实时存入场景布局文件,保存新的场景布局文件到工作空间文件。
8. -种基于三维GIS切换多个精细化控制场景的装置,其特征在于,包括: 区域检索模块,用于在显示三维GIS的视域中场景时,根据当前的视角范围检索预见 区域的模型数据,并生成若干个预见区域场景的工作空间文件后调入场景缓存中; 判断模块,用于当接收到场景切换请求时,根据所述场景切换请求中的目标场景信息 判断所述场景缓存中是否已经存在目标场景的工作空间文件; 显示模块,用于在所述判断模块的判断结果为是的情况下,从所述场景缓存中读取出 目标场景的工作空间文件,进行解析得到场景组织缓存文件以及场景布局缓存文件,并将 所述场景组织缓存文件以及场景布局缓存文件加载到三维GIS中进行显示。
9. 根据权利要求8所述的基于三维GIS切换多个精细化控制场景的装置,其特征在于, 所述区域检索模块包括: 场景组织文件生成模块,用于根据在三维显示系统中所编辑好的三维GIS场景模型业 务组织关系生成场景组织文件; 场景组织缓存文件生成模块,用于加载所述场景组织文件,将所述场景组织文件序列 化成三维场景模型数据,并进行压缩生成场景组织缓存文件; 关联信息保存模块,用于建立模型索引,保存多份场景之间的关联信息; 场景布局缓存文件生成模块,用于根据控制场景的业务布局信息生成场景布局文件, 将所述场景布局文件序列化成具有地理坐标属性的三维场景模型数据,并进行压缩生成场 景布局缓存文件; 工作空间文件生成模块,用于根据所述场景组织缓存文件、场景布局缓存文件以及关 联信息生成场景的工作空间文件。
10. 根据权利要求9所述的基于三维GIS切换多个精细化控制场景的装置,其特征在 于,所述显示模块包括: 模型缓存判断模块,用于反序列化所述场景组织缓存文件,并判断所述场景组织缓存 文件中是否存在模型缓存; 模型读取模块,用于在所述模型缓存判断模块的判断结果为是的情况下,从所述场景 组织缓存文件中读取出模型,并建立索引表; 模型布局信息获取模块,用于反序列化所述场景布局缓存文件,得到场景模型布局信 息; 加载模块,用于将所述模型以及模型布局信息加载到三维GIS中进行显示。
【文档编号】G06F17/30GK104063224SQ201410299959
【公开日】2014年9月24日 申请日期:2014年6月27日 优先权日:2014年6月27日
【发明者】林良辉 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1