一种三维GIS快速加载空间数据的方法技术

技术编号:11453081 阅读:119 留言:0更新日期:2015-05-14 02:17
本发明专利技术提供一种三维GIS快速加载空间数据的方法,包括以下步骤:服务端基于指定数据节点查询空间数据库,得到结果集;并构建特征类集合;服务端将特征类集合返回给客户端;客户端为每个特征类构建一个属性为空的渲染对象,并将所构建的渲染对象添加到渲染集合中;客户端遍历所述渲染集合中的每个渲染对象,异步给各个所述渲染对象的属性赋值;将所述渲染集合生成一个缓存文件并保存至缓存中。本发明专利技术提供的三维GIS快速加载空间数据的方法,采用多种技术手段,全面提高了空间数据加载速率,更好地满足空间数据实时显示的需求;还有效降低了空间数据的维护成本。

【技术实现步骤摘要】
一种三维GIS快速加载空间数据的方法
本专利技术属于计算机图形学
,具体涉及一种三维GIS快速加载空间数据的方法。
技术介绍
目前,公知的三维GIS(GeographicInformationSystem,地理信息系统)加载空间数据的方法是:首先将空间数据库中存储的空间数据进行栅格化处理;然后,再将生成的栅格数据发布到服务器上;最后,客户端直接读取服务器上的栅格数据并加载到影像上。该种方法存在的主要问题为:由于栅格数据是静态的事先处理好的数据,栅格数据并不会实时的读取空间数据库,其是以文件的形式发布到服务器中,因此,当更新空间数据库时,并无法反映到栅格数据中,所以,当更新空间数据库时,必须重新生成栅格化数据来替代原有的栅格化数据,具有维护成本高的问题。比如,当在空间数据库中新增、修改或删除空间数据时,均需要重新生成栅格数据,因此,随着空间数据量的增加和业务量的增多,此问题更加突出。例如,在油田GIS领域,需要经常更新空间数据库,比如:当新铺设油气管线、新增采油井或者采油井报废时,均需要将这些井状态变更的数据反映到相关的空间数据库中,如果三维GIS采用传统的空间数据栅格化处理方式,将大大增加维护成本。因而,目前需要本领域技术人员迫切解决的一个技术问题为:如何找到一种实时的快速加载空间数据的方法,从而有效的解决目前基于栅格数据加载空间数据方法中存在的维护成本高的问题。
技术实现思路
针对现有技术存在的缺陷,本专利技术提供一种三维GIS快速加载空间数据的方法,可有效解决上述问题。本专利技术采用的技术方案如下:本专利技术提供一种三维GIS快速加载空间数据的方法,包括以下步骤:S1,当客户端需要加载并显示与指定数据节点对应的空间数据时,所述客户端首先读取本地缓存,判断本地缓存是否存在与所述指定数据节点对应的缓存文件,如果不存在,则执行S2-S13;如果存在,则执行S14;S2,所述客户端向服务端发送获取与所述指定数据节点对应的空间数据的请求消息;S3,所述服务端读取本地缓存,判断缓存中是否存在与所述指定数据节点对应的特征类集合文件;如果不存在,则执行S4-S7;如果存在,则执行S8;S4,所述服务端基于所述指定数据节点查询空间数据库,得到由n个空间数据组成的结果集;其中,n为自然数;S5,所述服务端构建与所述结果集中每个所述空间数据对应的特征类,所述特征类存储所述空间数据的空间坐标以及地形数据的对应关系;S6,所述服务端将所述结果集中每个所述空间数据对应的特征类进行合并,生成由n个特征类组成的特征类集合;S7,所述服务端将所述特征类集合序列化为特征类集合文件,并缓存所述特征类集合文件;然后,所述服务端从缓存中将所述特征类集合文件进行反序列化处理,得到特征类集合,并返回给所述客户端;然后执行S11;S8,所述服务端判断缓存中的所述特征类集合文件是否已过期,如果未过期,则执行S9;如果已过期,则执行S10;S9,所述服务端直接从所述缓存中反序列化所述特征类集合文件,得到特征类集合,并将所述特征类集合返回给所述客户端;然后执行S11;S10,所述服务端按步骤S4-S6的步骤获得最新的特征类集合文件,并将所获得的最新的特征类集合文件更新所述缓存中存储的已过期的特征类集合文件,然后,将最新的特征类集合返回给所述客户端;然后执行S11;S11,所述客户端解析接收到的所述特征类集合,得到n个特征类;然后,所述客户端为每个特征类构建一个属性为空的渲染对象,并将所构建的渲染对象添加到渲染集合中;S12,所述客户端遍历所述渲染集合中的每个渲染对象,异步给各个所述渲染对象的属性赋值;S13,渲染集合中的所有渲染对象的属性均赋值后,所述客户端通过序列化技术,将所述渲染集合生成一个缓存文件并保存至缓存中;然后,所述客户端采用反序列化方式加载所述缓存文件,并结束流程;S14,所述客户端判断与所述指定数据节点对应的缓存文件是否过期,如果未过期,则执行S15;如果已过期,则执行S16;S15,所述客户端采用反序列化方式加载所述缓存文件,并结束流程;S16,所述客户端按照S2-S13的步骤,获得最新的缓存文件,并用所述最新的缓存文件更新所述缓存中存储的已过期的缓存文件,然后,采用反序列化方式加载更新后的缓存文件,并结束流程。优选的,S4具体为:所述服务端通过Oracle11g执行预先定制的sql查询语句,查询所述空间数据库。优选的,S11中,所述客户端为每个特征类构建一个属性为空的渲染对象,具体为:所述客户端判断每个特征类的坐标类型;然后,所述客户端根据所述特征类的坐标类型,创建相应的空的渲染对象。优选的,所述特征类的坐标类型包括:点、线和面三种坐标类型。优选的,S12中,所述客户端给所述渲染对象的属性赋值,具体为:所述客户端将解析得到的包含空间坐标和地形数据的特征类、以及预先定制的样式信息赋给渲染对象的属性,使所述渲染对象的属性非空,由此得到赋值后的渲染对象。本专利技术的有益效果如下:本专利技术提供的三维GIS快速加载空间数据的方法,采用多种技术手段,全面提高了空间数据加载速率,更好地满足空间数据实时显示的需求;还有效降低了空间数据的维护成本。附图说明图1为本专利技术提供的三维GIS快速加载空间数据的方法流程示意图。具体实施方式以下结合附图对本专利技术进行详细说明:如图1所示,本专利技术提供一种三维GIS快速加载空间数据的方法,包括以下步骤:S1,当客户端需要加载并显示与指定数据节点对应的空间数据时,所述客户端首先读取本地缓存,判断本地缓存是否存在与所述指定数据节点对应的缓存文件,如果不存在,则执行S2-S13;如果存在,则执行S14;S2,所述客户端向服务端发送获取与所述指定数据节点对应的空间数据的请求消息;S3,所述服务端读取本地缓存,判断缓存中是否存在与所述指定数据节点对应的特征类集合文件;如果不存在,则执行S4-S7;如果存在,则执行S8;S4,所述服务端基于所述指定数据节点查询空间数据库,得到由n个空间数据组成的结果集;其中,n为自然数;本步骤具体可以为:服务端通过Oracle11g执行预先定制的sql查询语句,查询所述空间数据库,从而得到由n个空间数据组成的结果集。S5,所述服务端构建与所述结果集中每个所述空间数据对应的特征类,所述特征类存储所述空间数据的空间坐标以及地形数据的对应关系;S6,所述服务端将所述结果集中每个所述空间数据对应的特征类进行合并,生成由n个特征类组成的特征类集合;本专利技术中,特征类的原理跟哈希表类似,即:通过某个特定的键保存任意类型的值。在sql查询语句执行后的结果集中,每条空间数据构建一个特征类,此特征类保存这条空间数据的字段和相对应的值,即:结果集包含的空间数据的数量与特征类的数量相同。特征类集合是指通过结果集构建的所有特征类的集合。构建特征类的主要目的为:在包括二维和三维的空间客户端中能够复用特征类,实现一次查询多次应用的作用,而不需要反复查询,从而提高空间数据加载效率。S7,所述服务端将所述特征类集合序列化为特征类集合文件,并缓存所述特征类集合文件;然后,所述服务端从缓存中将所述特征类集合文件进行反序列化处理,得到特征类集合,并返回给所述客户端;然后执行S11;此处,服务端采用序列化为特征类集合文件的方式,即:以自定义文本文档来自技高网...

【技术保护点】
一种三维GIS快速加载空间数据的方法,其特征在于,包括以下步骤:S1,当客户端需要加载并显示与指定数据节点对应的空间数据时,所述客户端首先读取本地缓存,判断本地缓存是否存在与所述指定数据节点对应的缓存文件,如果不存在,则执行S2‑S13;如果存在,则执行S14;S2,所述客户端向服务端发送获取与所述指定数据节点对应的空间数据的请求消息;S3,所述服务端读取本地缓存,判断缓存中是否存在与所述指定数据节点对应的特征类集合文件;如果不存在,则执行S4‑S7;如果存在,则执行S8;S4,所述服务端基于所述指定数据节点查询空间数据库,得到由n个空间数据组成的结果集;其中,n为自然数;S5,所述服务端构建与所述结果集中每个所述空间数据对应的特征类,所述特征类存储所述空间数据的空间坐标以及地形数据的对应关系;S6,所述服务端将所述结果集中每个所述空间数据对应的特征类进行合并,生成由n个特征类组成的特征类集合;S7,所述服务端将所述特征类集合序列化为特征类集合文件,并缓存所述特征类集合文件;然后,所述服务端从缓存中将所述特征类集合文件进行反序列化处理,得到特征类集合,并返回给所述客户端;然后执行S11;S8,所述服务端判断缓存中的所述特征类集合文件是否已过期,如果未过期,则执行S9;如果已过期,则执行S10;S9,所述服务端直接从所述缓存中反序列化所述特征类集合文件,得到特征类集合,并将所述特征类集合返回给所述客户端;然后执行S11;S10,所述服务端按步骤S4‑S6的步骤获得最新的特征类集合文件,并将所获得的最新的特征类集合文件更新所述缓存中存储的已过期的特征类集合文件,然后,将最新的特征类集合返回给所述客户端;然后执行S11;S11,所述客户端解析接收到的所述特征类集合,得到n个特征类;然后,所述客户端为每个特征类构建一个属性为空的渲染对象,并将所构建的渲染对象添加到渲染集合中;S12,所述客户端遍历所述渲染集合中的每个渲染对象,异步给各个所述渲染对象的属性赋值;S13,渲染集合中的所有渲染对象的属性均赋值后,所述客户端通过序列化技术,将所述渲染集合生成一个缓存文件并保存至缓存中;然后,所述客户端采用反序列化方式加载所述缓存文件,并结束流程;S14,所述客户端判断与所述指定数据节点对应的缓存文件是否过期,如果未过期,则执行S15;如果已过期,则执行S16;S15,所述客户端采用反序列化方式加载所述缓存文件,并结束流程;S16,所述客户端按照S2‑S13的步骤,获得最新的缓存文件,并用所述最新的缓存文件更新所述缓存中存储的已过期的缓存文件,然后,采用反序列化方式加载更新后的缓存文件,并结束流程。...

【技术特征摘要】
1.一种三维GIS快速加载空间数据的方法,其特征在于,包括以下步骤:S1,当客户端需要加载并显示与指定数据节点对应的空间数据时,所述客户端首先读取本地缓存,判断本地缓存是否存在与所述指定数据节点对应的缓存文件,如果不存在,则执行S2-S13;如果存在,则执行S14;S2,所述客户端向服务端发送获取与所述指定数据节点对应的空间数据的请求消息;S3,所述服务端读取本地缓存,判断缓存中是否存在与所述指定数据节点对应的特征类集合文件;如果不存在,则执行S4-S7;如果存在,则执行S8;S4,所述服务端基于所述指定数据节点查询空间数据库,得到由n个空间数据组成的结果集;其中,n为自然数;S5,所述服务端构建与所述结果集中每个所述空间数据对应的特征类,所述特征类存储所述空间数据的空间坐标以及地形数据的对应关系;S6,所述服务端将所述结果集中每个所述空间数据对应的特征类进行合并,生成由n个特征类组成的特征类集合;具体的,通过某个特定的键保存任意类型的值,在sql查询语句执行后的结果集中,每条空间数据构建一个特征类,此特征类保存这条空间数据的字段和相对应的值,即:结果集包含的空间数据的数量与特征类的数量相同,特征类集合是指通过结果集构建的所有特征类的集合,构建特征类的主要目的为:在包括二维和三维的空间客户端中能够复用特征类,实现一次查询多次应用的作用,而不需要反复查询,从而提高空间数据加载效率;S7,所述服务端将所述特征类集合序列化为特征类集合文件,并缓存所述特征类集合文件;然后,所述服务端从缓存中将所述特征类集合文件进行反序列化处理,得到特征类集合,并返回给所述客户端;然后执行S11;具体的,服务端采用序列化为特征类集合文件的方式,即:以自定义文件的方式保存到本地缓存,优点为:当服务端需要再次读取该特征类集合时,直接对所述特征类集合文件进行反序列化处理即可,从而提高加载速度;S8,所述服务端判断缓存中的所述特征类集合文件是否已过期,如果未过期,则执行S9;如果已过期,则执行S10;判断特征类集合文件是否过期的具体方法为:通过预先定制的缓存更新时间字段与缓存文件创建时间进行对比,从而判断是否过期;S9,所述服务端直接从所述缓存中反序列化所述特征类集合文件,得到特征类集合,并将所述特征类集合返回给所述客户端;然...

【专利技术属性】
技术研发人员:郭勇
申请(专利权)人:克拉玛依红有软件有限责任公司
类型:发明
国别省市:新疆;65

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

1