一种多图层的混合索引方法与流程

文档序号:12472139阅读:813来源:国知局
一种多图层的混合索引方法与流程

本发明属于地图绘制技术领域,具体涉及一种多图层的混合索引方法。



背景技术:

空间索引是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构,其中包含空间对象的概要信息,如对象的标识、外接矩形及指向空间对象实体的指针。

空间数据查询即空间索引,是对存储在介质上的数据位置信息的描述,是用来提高系统对数据获取的效率,也称为空间访问方法(Spatial Access Method SAM)。是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构其中包含空间对象的概要信息如对象的标识外接矩形及指向空间对象实体的指针。

作为一种辅助性的空间数据结构空间索引介于空间操作算法和空间对象之间它通过筛选作用大量与特定空间操作无关的空间对象被排除从而提高空间操作的速度和效率。

当前数据搜索的一个关键问题是速度。提高速度的核心技术是空间索引。空间索引是由空间位置到空间对象的映射关系。当前的一些大型数据库都有空间索引能力,像Oracle,DB2。空间索引技术并不单是为了提高显示速度,显示速度仅仅是它所要解决的一个问题。空间索引是为空间搜索提供一种合适的数据结构,以提高搜索速度。空间索引技术的核心是:根据搜索条件,比如一个矩形,迅速找到与该矩形相交的所有空间对象集合。当数据量巨大,矩形框相对于全图很小时,这个集合相对于全图数据集大为缩小,在这个缩小的集合上再处理各种复杂的搜索,效率就会大大提高。所谓空间索引,就是指依据空间实体的位置和形状或空间实体之间的某种空间关系,按一定顺序排列的一种数据结构,其中包含空间实体的概要信息如对象的标识、外接矩形及指向空间实体数据的指针。简单的说,就是将空间对象按某种空间关系进行划分,以后对空间对象的存取都基于划分块进行。

现有的空间索引基本都是针对的是单图层,但是对于多图层的空间索引基本没有涉及。

随着这几年地图技术的推广,越来越多的人希望把更多的信息加载到地图上去。这就带来一个问题,地图加载的信息越来越多,但是实时绘制速度却越来越慢。浏览速度的变慢主要来源于两个问题:

单个图层的数据量越来越大,导致一次性的绘制信息,特别是在全图的时候单个图层绘制的内容变多;

图层越来越多,导致整个地图的绘制的信息量变大。

此发明主要针对第二个问题进行展开。

以往的空间索引,基本都是针对单个图层的索引技术,其立足点主要是提高查询、分析的效率。但是真正在实际应用中,更多普通的用户更关心的是如何直观有效的看到地图,浏览到地图上有用的信息。



技术实现要素:

为了克服上述背景技术的缺陷,本发明提供一种多图层的混合索引方法,提出了多图层的混合索引技术,针对在同一地图如果图层的分布固定的情况下,对此地图构建多图层的索引,提高地图的整体绘制效率。

为了解决上述技术问题本发明的所采用的技术方案为:

一种多图层的混合索引方法,包括:

步骤1,选择索引方式;

步骤2,获取当前地图信息;

步骤3,构建索引规则,构建网格索引的网格大小及分布;

步骤4,对每个图层按照网格大小及分布构建索引:

步骤5,按照整个地图的图层顺序,构建整个地图的索引:

步骤6,根据全局索引的结果设置绘制效果。

较佳地,索引方式包括网格索引,网格索引包括整体索引方式。

较佳地,步骤2获取当前地图信息包括:

步骤201,获取地图的所有的图层;

步骤202,获取地图的图层,对图层从上至下进行编号,最上方的图层编号为0;

步骤203,获取各个图层的数据总量。

较佳地,步骤3具体包括:

步骤301,设置网格的大小;

步骤302,依据地图范围以及网格的分布进行换算,判断每个网格占据的实际的坐标范围,并且以此为依据构建网格的编号与实际的地理坐标的映射关系;

步骤303,构建存储表存储网格的编号与所处的地理范围的坐标值。

较佳地,步骤301设置网格的大小时,一个市的数据设置为1024*1024的一个网格。

较佳地,步骤4包括:

步骤401,遍历每个图层,对每个图层构建一个网格索引;

步骤402,遍历每个图层的要素,将其要素与网格的关联关系存储在图层的网格索引表。

较佳地,网格索引表中X方向网格编码对应横坐标的对应的网格编号,Y方向的网格编码对应纵坐标对应的玩个编号,要素的标识包括要素在所对应图层中的唯一标识,要素的外接矩形采用WKT的方式进行存储,要素是否完全覆盖网格。

较佳地,步骤5包括:

步骤501,构建一个全局的索引,存储图层名以及图层网格索引的表名;

步骤502,按照图层顺序遍历所有的图层索引,如果存在以下预设关系的就进行标识。

较佳地,预设关系包括:

第一,在同一个网格中,如果图层编号小的要素的外接矩形大于或等于图层编号大的外界矩形,则判断图层编号小的要素包含或覆盖图层编号大的要素;

第二,有图层的某一个要素其完全覆盖某一个网格,判断其图层编号大于此图层的所有图层中的此网格中的要素,其网格的要素都小于此网格。

较佳地,步骤6包括:

步骤601,全图索引的信息结果设置每个图层的显示内容,对于上一步索引中存在覆盖情况的要素不进行绘制;

步骤602,在绘制的时候进行标识,如果存在图层设置透明度的情况,则设置透明的图层不纳入全图的索引范围内;

本发明的有益效果在于:本发明每层单独建立网格索引,针对每层的网格索引,可以先通过每层的计算从而减少整体的全图索引的计算量;本发明的全图索引以每个图层的网格索引为依据,以此为基础,根据图层的级别以及显示顺序从而降低整体的绘制量;从而提高整个地图的浏览速度。本发明提出了多图层的混合索引技术,针对在同一地图如果图层的分布固定的情况下,对此地图构建多图层的索引,提高地图的整体绘制效率。

附图说明

图1为本发明实施例获取网格编号的方法流程图;

图2为本发明实施例构建单图层网格索引的方法流程图;

图3为本发明实施例全图层索引计算方法流程图。

具体实施方式

下面结合附图和实施例对本发明做进一步的说明。

如图1至图3所示,一种多图层的混合索引技术从而提高地图的整体绘制效率,包括以下步骤:

步骤1,选择索引的方式,现有的空间索引方式非常多,这里推荐采用网格索引的方式为整体的索引方式;

步骤2,获取当前地图的信息

步骤201,获取地图的所有的图层;

步骤202,获取地图的图层并且对图层进行编号,从上往下进行编号,编号从0开始,越在上的图层其编号越小,越在下的图层其编号越大;

步骤203,获取每个图层的数据总量;

步骤3,构建索引的规则,根据实际的地图情况构建网格索引的网格的大小,以及分布情况;

步骤301,根据数据的覆盖范围设置网格的大小,一般一个市的数据设置为1024*1024的一个网格;

步骤302,根据地图的范围以及网格的分布进行换算,判断每个网格占据的实际的坐标范围,并且以此为依据构建网格的编号与实际的地理坐标的映射关系;

步骤303,构建存储表存储网格的编号与所处的地理范围的坐标值;

步骤4,对每个图层按照之前制定的网格规则构建索引:

步骤401,遍历每个图层,针对每个图层都构建一个网格索引;

步骤402,遍历每个图层的要素,将其要素与网格的关联关系存储在图层的网格索引表里:

步骤5,按照整个地图的图层顺序,构建整个地图的索引:

步骤501,构建一个全局的索引,存储图层名以及图层网格索引的表名;

步骤502,按照图层顺序遍历所有的图层索引,如果存在以下预设关系的情况就进行标识:

第一,在同一个网格中,如果图层编号小的要素的外接矩形大于或等于图层编号大的外界矩形,则判断图层编号小的要素是否包含或覆盖图层编号大的要素,如果成立则对这种情况进行记录;

第二,有图层的某一个要素其完全覆盖某一个网格,判断其图层编号大于此图层的所有图层中的此网格中的要素,如果其网格的要素都小于此网格的则进行记录;

步骤6,根据全局索引的结果设置绘制效果:

步骤601,全图索引的信息结果设置每个图层的显示内容,对于上一步索引中存在覆盖情况的要素不进行绘制;

步骤602,在绘制的时候进行标识,如果存在图层设置透明度的情况,则设置透明的图层不纳入全图的索引范围内。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1