地理信息系统(Geography Information System,简称GIS)的主要任务之一是有效地检索空间数据及快速响应不同用户的在线查询。
地理空间索引技术和方法是GIS的关键技术。是快速高效查询、检索和显示地理空间数据的重要指标。
常用的空间索引技术介绍和比较:
网格空间索引、四叉树空间索引和R树系列空间索引最为常见。
目前国内外主要的空间数据库也大都采用网格空间索引、四叉树 与 R树 这三类的空间索引结构。如著名的Oracle公司的数据库则同时采用 四叉树和R树两种索引结构。
1。 空间索引技术的发展和分类
以传统的索引技术观点来看,可以把空间索引技术大致分为 四大类:基于B树、基于Hashing、基于二叉树和基于空间填充区。
就目前的空间索引研究成果而言,在建立索引时,按照划分区域是否与空间对象的分布特征有关的标准,空间索引分为两大类:
划分区域与空间对象分布特征无关的; ---包括 网格索引、四叉树;
划分区域与空间对象的分布特征有关的索引方法; ---包括 BSP树、R树及其变种树、Cell树、KD树等
1.1基于固定网格划分的空间索引
基于固定网格划分的空间索引技术 面向地图对象的空间位置和分布。应该属于 栅格索引,是一种高效、简洁、易于实现的一种空间索引。
固定网格划分的空间索引技术 顾名思义就是将一副地图数据按照固定的网格划分,如将一幅地图分割成 M行、N列,可表示为M*N,
以落入每个网格内的地图目标建立索引,这样只需检索原来区域的1/(M*N),以达到 快速检索的目的。
如下图所示:
问题的关键在于 如何建立检索,将落入每个网格的目标正确放入该网格,在检索过程中,通过鼠标 点选 准确的判断出目标所在网格。
并运用相应算法精确的剔出所选的目标,以获得其空间数据和对应的属性数据。
1.2 四叉树
四叉树是基于空间划分组织索引结构的索引机制,与规则网格划分不同。
它将已知范围的二维空间划成4个相等的子空间。如果需要,可以将每个或其中几个子空间 继续划分下去,这样就形成了一个基于四叉树的空间划分。
如下图所示:
四叉树索引通过将 数据空间逐层细分来组织数据,结构和操作比较简单,实现比较方便。
其中 满四叉树空间索引,还可用 顺序存储的线性表 来表示。内存需求小。
关键是 建立四叉树空间索引,要预先知道空间对象分布的范围。因而不能满足 空间数据的动态要求;此外,一旦索引建立后,树的层次即被
固定,无法根据 数据空间对象数目的变化来调整树高,可调节性差。
1.3 R-树
R-树是空间索引结构中最重要的一种层次结构,其构建思想是以最小边界矩形(简称MBR)递归的对数据集空间按照“面积”规则进行划分。
R-树中的非叶子节点代表一个划分的空间区域,即一个矩形空间区域;
R-树中的叶子节点包含的矩形区域对应空间对象的MBR。
构造矩形空间的原则是:
1) 矩形之间尽可能少重叠;
2) 矩形尽可能的包含更多的空间对象;
3) 矩形可以嵌套,即 矩形中可以包括更小的矩形;
R-树的平面划分与数据结构如图所示:
关键是 进行空间检索时,首先判断哪些矩形区域与检索窗口相交,再进一步判断落在检索窗口内的矩形区域中由哪些被检索的对象。
优点:
R-树具有很强的灵活性与可调节性,建树过程中无需预知整个空间对象所在的空间范围,同时他具有较高的执行效率。
被公认为是 较好的空间索引结构,已经得到广泛应用。
缺点:
但是,R-树也存在许多问题,可归纳为两方面:
。由于空间对象千姿百态,其索引空间经常重叠,且其重叠的程度随着数据量后空间维数的增加而剧增。
索引空间的重叠必然造成树的深度及存储空间的增加,从而导致遍历时间增加,查询效率下降。
。在动态构建R-树时,还会产生大量“死空间”(不包含空间目标的索引空间),造成存储空间的浪费,产生无效的遍历。
1.4 BSP树
BSP树是一种二叉树,它将 地理空间逐级进行一分为二的划分,如图所示:
BSP树能很好地与地理对象的空间分布情况相适应,但对一般处理情况而言,BSP树深度较大,对各种操作均有不利影响。
2。主要空间索引方法对比
在众多空间索引中,不同的索引有不同的优势和不足及使用范围。在选取哪一种作为空间数据库的空间索引时,要根据实际情况和需要来确定。
所以,目前很多GIS软件中采用 多种索引机制并存、取长补短的策略。