本发明涉及计算机软件技术领域,尤其涉及一种地理信息系统无感加载方法、装置、终端及存储介质。
背景技术:
地理信息系统(gis)有时又称为“地学信息系统”。它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。gis是一种基于计算机的工具,它可以对空间信息进行分析和处理(简而言之,是对地球上存在的现象和发生的事件进行成图和分析)。gis技术把地图这种独特的视觉化效果和地理分析功能与一般的数据库操作(例如查询和统计分析等)集成在一起。
目前,市面上所有的地理信息系统均是采用多图层加载的方法,在浏览的同时不断加载数据信息。实际使用过程中,受网络带宽、环境、业务应用迭代的复杂度影响,在初始加载的过程中非常慢,而且会不断的在系统当中刷新数据信息,非常影响使用感知。本系统采用多业务图层迭代,完全屏蔽地理信息系统加载感知,平滑过渡,且经过测试,长时间大量数据冲刷web页面的情况下不会造成页面崩溃。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种地理信息系统无感加载方法、装置、终端及存储介质。
本发明的目的是通过以下技术方案来实现的:
一种地理信息系统无感加载方法,包括以下步骤:
步骤一:将图层设置为不可捕捉、不可编辑状态,并采用系统线型、系统填充风格进行图层风格渲染;
步骤二:然后根据使用情况设置部分图层的状态为不可见,并对图层设置可见比例尺,同时提取图层中的全局性的要素进行地图全幅显示;
步骤三:对图层中的对象设置过滤对象尺寸和文本字高,以及构造sql条件来过滤图层对象;
步骤四:在地图中建立合适的空间索引和影像金字塔,并对当前地图信息进行缓存生成一系列缓存图片,实现对地理信息系统的无感加载。
具体的,所述步骤四中建立合适的空间索引过程包括以下子步骤:
s11,首先进行第一层次划分,将研究区域分成mxn等份,设定左下角为坐标原点,则每个小块可表示为buck[k,],0<n,0j.<m;
s12,第一层次索引采用桶数组存储空间点、线和面对象,第一层次索引的数据结构由一个桶和一组单链表组成;
s13,根据查询需求在第一层次索引划分的网格块中进行层次划分,分别建立第二层次和第三层次的索引结构,采用特征信息域表示地理对象的位置,信息域中存储空间对象的索引信息。
具体的,所述步骤四中建立影像金字塔过程包括以下子步骤:
s21,先将原图像扩大一倍之后作为高斯金字塔的第1组第1层,将第1组第1层图像经高斯卷积之后作为第1组金字塔的第2层,高斯卷积函数如下式所示:
其中,参数σ取固定值1.6;
s22,将σ乘以一个比例系数k,等到一个新的平滑因子σ=k*σ,用它来平滑第1组第2层图像,结果图像作为第3层;
s23,重复步骤s22最终获得到l层图像,在同一组中,每一层图像的尺寸相同,每一层图像的平滑系数分别为:0,σ,kσ,k^2σ,k^3σ……k^(l-2)σ;
s24,将第1组倒数第三层图像作比例因子为2的降采样,得到的图像作为第2组的第1层,然后对第2组的第1层图像做平滑因子为σ的高斯平滑,得到第2组的第2层图像,重复步骤s22获得第2组的l层图像,重复上述图像处理过程,获得o*l个图像,利用获得o*l个图像构建影像金字塔。
一种地理信息系统无感加载装置,应用于上述的地理信息系统无感加载方法,包括数据缓存模块、影像金字塔模块和图层渲染模块。其中,
数据缓存模块用于通过浏览器发起请求获取gis数据获取地理信息缓存数据,并缓存返回的gis地图数据;
影像金字塔模块用于对地图图层进行数据分块并进行数据块重采样,输出数据块数据,同时构建影像金字塔存入数据块数据并导入数据到终端显示;
图层渲染模块用于在地图图层中设置可见比例尺、对象尺寸,并提取图层要素对图层进行过滤和风格渲染。
一种地理信息系统无感加载终端,所述终端包括处理器、和与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现上述的地理信息系统无感加载的方法。
一种计算机可读存储介质,所述存储介质中存储有程序指令,所述程序指令被处理器执行时实现上述的地理信息系统无感加载方法。
本发明的有益效果:本发明将图层设置为不可捕捉、不可编辑状态,提高了地图显示的效果和效率,并通过建立合适的空间索引,大幅提高了地图浏览显示的效率。对于海量影像数据,以建立影像金字塔方式来提高浏览显示的性能,优化了地图显示速度,还对数据进行重采样处理,减少了对象的节点数目,实现了地理信息系统的无感加载。
附图说明
图1是本发明的方法流程图。
图2是本发明的数据流图。
图3是本发明的影响金字塔结构示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本实施例中,如图1所示,一种地理信息系统无感加载方法,包括以下步骤:
步骤一:将图层设置为不可捕捉、不可编辑状态,并采用系统线型、系统填充风格进行图层风格渲染;
步骤二:然后根据使用情况设置部分图层的状态为不可见,并对图层设置可见比例尺,同时提取图层中的全局性的要素进行地图全幅显示;
步骤三:对图层中的对象设置过滤对象尺寸和文本字高,以及构造sql条件来过滤图层对象;
步骤四:在地图中建立合适的空间索引和影像金字塔,并对当前地图信息进行缓存生成一系列缓存图片,实现对地理信息系统的无感加载。
其中,如图2所示,本发明首先将图层设置为不可捕捉、不可编辑状态可以提高显示速度。其次,图层风格渲染时尽量采用系统线型、系统填充风格。在图层、对象过滤显示方面,首先,设置某些图层不可见可以提高地图显示的效果和效率,因此在配图时,可根据使用情况设置某些图层不可见,比如网络图层即使不可见也可以进行网络分析;其次,对图层设置可见比例尺可以提高地图显示的效率。一般来说,地图全幅时只需要看见一些全局性的要素,比如行政区划面要素和主干道路要素;当地图放大的过程中,地图的细节部分才逐步显示出来。再次,可以对图层中的对象设置过滤对象尺寸,将图层中的小对象过滤掉;通过构造sql条件也可以过滤掉一部分图层对象;对于文本图层还可以设置文本字高过滤显示。对于数据量大的地图,建立合适的空间索引可以大幅提高地图浏览显示的效率;另外,利用本地的地图缓存功能可以对当前地图生成一系列缓存图片,提高地图显示的速度,地图缓存尤其适用于网络发布的地图;对于海量影像数据,建立影像金字塔可以提高浏览显示的性能。对数据的处理也可以优化地图显示速度,比如对数据进行重采样,减少对象的节点数目。通过以上手段实现了地理信息系统的无感加载。
具体的,所述步骤四中建立合适的空间索引过程包括:首先进行第一层次划分,将研究区域分成mxn等份,设定左下角为坐标原点,则每个小块可表示为buck[k,],0<n,0j.<m。一个mxn的网格共有mxn个桶,若第i个桶表示为buck[i],则buck与block的关系为:buck[i]一一对应于block[i/m],imodm,其中0<mn。
第一层次索引采用桶数组存储空间点、线、面对象。数据结构由一个桶和一组单链表组成,其中,各桶都有指向第一个对象结点的指针,若该指针不为空,则表示该桶内存在对象,需继续检索;否则,桶为空,将不对桶进行检索。
为了实现精确查询,可根据需要建立二、三层次的索引结构,在一级索引划分的网格块中再进行第二、三级划分。考虑到索引效率,在二、三级的划分中,不再采用桶结构来存储地理对象,地理对象的位置由一个特征信息域表示,信息域中存储空间对象的索引信息。
索引的操作:地理对象的插入、删除或检索操作分别按点、线、面三种情况进行。
插入操作:在进行点对象的插入操作时,根据点的坐标计算出点所对应的桶及其对应的块号,若某个桶中已经存在该点对象,则不再插入该对象,否则,将该对象的标识以及特征信息存储到相应的块号中,并将存储索引信息的块号链接到相应的桶数组中。在进行线对象插入操作时,首先将线对象分解为若干稠密的点,然后调用点对象的插入算法进行线对象的插入。在进行面对象插入时,采用类似的算法将面对象分解为若干稠密的线,再调用线对象的插入算法完成面对象的插入。
删除操作:删除操作是插入操作的反过程,在进行点对象的删除操作时,根据点对象的坐标计算对象存储块号及其对应的桶,然后将该对象的标识以及特征信息从块和桶中清除,并释放对象所占用的块号。线对象删除算法调用点对象删除算法,面对象的删除算法调用线对象的删除算法。
检索操作:在检索某点处的空间对象时,根据点对象的坐标及检索精度要求计算点对象相对块号,将计算所得一级块号所对应的桶中对象的特征信息逐个与点对象的特征信息比较,若匹配则将检索到的对象标识和索引信息输出到中间集合,检索完成后输出中间集合中对象的索引信息。检索与某线相交的地物时,首先根据检索精度要求计算线对象所覆盖的桶,然后将各桶中所存储的地物特征信息与线对象的特征信息比较,若匹配则将该对象输出到中间集合,最后输出中间集合中对象索引信息。面对象的处理方法与线对象类似。
具体的,所述步骤四中建立影像金字塔过程包括:
1.先将原图像扩大一倍之后作为高斯金字塔的第1组第1层,将第1组第1层图像经高斯卷积(其实就是高斯平滑或称高斯滤波)之后作为第1组金字塔的第2层,高斯卷积函数为:
对于参数σ,在sift算子中取的是固定值1.6。
2.将σ乘以一个比例系数k,等到一个新的平滑因子σ=k*σ,用它来平滑第1组第2层图像,结果图像作为第3层。
3.如此这般重复,最后得到l层图像,在同一组中,每一层图像的尺寸都是一样的,只是平滑系数不一样。它们对应的平滑系数分别为:0,σ,kσ,k^2σ,k^3σ……k^(l-2)σ。
4.将第1组倒数第三层图像作比例因子为2的降采样,得到的图像作为第2组的第1层,然后对第2组的第1层图像做平滑因子为σ的高斯平滑,得到第2组的第2层,就像步骤2中一样,如此得到第2组的l层图像,同组内它们的尺寸是一样的,对应的平滑系数分别为:0,σ,kσ,k^2σ,k^3σ……k^(l-2)σ。但是在尺寸方面第2组是第1组图像的一半。
重复执行上述图像处理过程,就可以得到一共o组,每组l层,共计o*l个图像,利用这些图像构建影像金字塔,影像金字塔结构如图3所示。在同一组内,不同层图像的尺寸是一样的,后一层图像的高斯平滑因子σ是前一层图像平滑因子的k倍;在不同组内,后一组第一个图像是前一组倒数第三个图像的二分之一采样,图像大小是前一组的一半。
一种地理信息系统无感加载装置,应用于上述的地理信息系统无感加载方法,包括数据缓存模块、影像金字塔模块和图层渲染模块。其中,
数据缓存模块用于通过浏览器发起请求获取gis数据获取地理信息缓存数据,并缓存返回的gis地图数据;
影像金字塔模块用于对地图图层进行数据分块并进行数据块重采样,输出数据块数据,同时构建影像金字塔存入数据块数据并导入数据到终端显示;
图层渲染模块用于在地图图层中设置可见比例尺、对象尺寸,并提取图层要素对图层进行过滤和风格渲染。
一种地理信息系统无感加载终端,所述终端包括处理器、和与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现上述的地理信息系统无感加载的方法。
一种计算机可读存储介质,所述存储介质中存储有程序指令,所述程序指令被处理器执行时实现上述的地理信息系统无感加载方法。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。
1.一种地理信息系统无感加载方法,其特征在于,包括以下步骤:
步骤一:将图层设置为不可捕捉、不可编辑状态,并采用系统线型、系统填充风格进行图层风格渲染;
步骤二:然后根据使用情况设置部分图层的状态为不可见,并对图层设置可见比例尺,同时提取图层中的全局性的要素进行地图全幅显示;
步骤三:对图层中的对象设置过滤对象尺寸和文本字高,以及构造sql条件来过滤图层对象;
步骤四:在地图中建立合适的空间索引和影像金字塔,并对当前地图信息进行缓存生成一系列缓存图片,实现对地理信息系统的无感加载。
2.根据权利要求1所述的一种地理信息系统无感加载方法,其特征在于,所述步骤四中建立合适的空间索引过程包括以下子步骤:
s11,首先进行第一层次划分,将研究区域分成mxn等份,设定左下角为坐标原点,则每个小块可表示为buck[k,],0<n,0j.<m;
s12,第一层次索引采用桶数组存储空间点、线和面对象,第一层次索引的数据结构由一个桶和一组单链表组成;
s13,根据查询需求在第一层次索引划分的网格块中进行层次划分,分别建立第二层次和第三层次的索引结构,采用特征信息域表示地理对象的位置,信息域中存储空间对象的索引信息。
3.根据权利要求1所述的一种地理信息系统无感加载方法,其特征在于,所述步骤四中建立影像金字塔过程包括以下子步骤:
s21,先将原图像扩大一倍之后作为高斯金字塔的第1组第1层,将第1组第1层图像经高斯卷积之后作为第1组金字塔的第2层,高斯卷积函数如下式所示:
其中,参数σ取固定值1.6;
s22,将σ乘以一个比例系数k,等到一个新的平滑因子σ=k*σ,用它来平滑第1组第2层图像,结果图像作为第3层;
s23,重复步骤s22最终获得到l层图像,在同一组中,每一层图像的尺寸相同,每一层图像的平滑系数分别为:0,σ,kσ,k^2σ,k^3σ……k^(l-2)σ;
s24,将第1组倒数第三层图像作比例因子为2的降采样,得到的图像作为第2组的第1层,然后对第2组的第1层图像做平滑因子为σ的高斯平滑,得到第2组的第2层图像,重复步骤s22获得第2组的l层图像,重复上述图像处理过程,获得o*l个图像,利用获得o*l个图像构建影像金字塔。
4.一种地理信息系统无感加载装置,应用于如权利要求1至3任意一项所述的地理信息系统无感加载方法,其特征在于,包括
数据缓存模块,用于通过浏览器发起请求获取gis数据获取地理信息缓存数据,并缓存返回的gis地图数据;
影像金字塔模块,用于对地图图层进行数据分块并进行数据块重采样,输出数据块数据,同时构建影像金字塔存入数据块数据并导入数据到终端显示;
图层渲染模块,用于在地图图层中设置可见比例尺、对象尺寸,并提取图层要素对图层进行过滤和风格渲染。
5.一种地理信息系统无感加载终端,其特征在于,所述终端包括处理器、和与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现如权利要求1至3任一所述的地理信息系统无感加载的方法。
6.一种计算机可读存储介质,所述存储介质中存储有程序指令,其特征在于,所述程序指令被处理器执行时实现如权利要求1至3任一所述的地理信息系统无感加载方法。
技术总结