GIS后端

What I Read(3) 地理空间数据库原理(C) 地理空间

2022-10-18  本文已影响0人  默而识之者

引用部分均为笔者思考.

1. 引入

1.1 何谓地理空间索引

地理空间索引是在存储空间数据时依据空间对象的位置和形状或空间对象的某种空间关系,按照一定的顺序排列的一种数据结构,介于空间操作算法和空间数据之间.

简单来说,地理空间索引主要的功能是:

  • 给定空间范围快速找到空间对象
  • 给定空间对象快速定位空间范围

1.2 为何需要空间索引

即:没有索引不行

2. 空间索引的分类

空间索引没有银弹,分类的目的是为寻找特定场景下更加合适的索引方式.

2.1 按搜索对象分类

按搜索对象分类的原因是明确使用场景为特定形态的地物

可分为:

2.2 按空间分割法分类

空间分割法包含两个子分类:

  • 对象分割
  • 空间分割

它们的区别在于:对象分割法更关心对象,在游戏领域比较常见.空间分割法更关心空间与对象的关系,而在现实生活中,地物与地物往往不是直接产生关系,而是通过空间间接的关联在一起,所以在GIS系统中较为常用.

2.2.1 对象分割

对象分割法一般由层次包围体实现.常见的五种包围体为:

名称 描述 优点 缺点
包围球 最简单的包围体 便于计算,易于做重叠检测和节点修改 逼近程度较差
轴向包围盒(AABB) 长方体的包围体,各轴方向与坐标轴一致 易于做重叠测试 逼近程度较差
方向包围盒(OBB) 任意方向的长方体包围体 逼近程度较高,更新效率较高 -
离散方向多面体(k-DOP) 凸多面体,面由一系列半空间决定.这些半空间的外法向是从k个固定的方向中选取的.AABB就相当于一个6-DOP. 与包围球和AABB相比逼近程度更高.与OBB相比重叠测试和修改成本较低 -
凸包 最精确的外包围体 逼近程度最高 修改和重叠检测成本很高

2.2.2 规则分割

规则分割法是将地理空间按照某种规则或半规则的方式进行分隔,分割单元间接的与空间要素关联,空间要素可能被分割到相邻的单元,这时候空间要素的描述要保持完整,空间索引单元只存储空间要素地址的参考信息.

常见的分隔法:

2.3 按技术分类

按技术分类基于是用途更加细分的分类法,可能为了避免某种不足或者是为了达到某种性能需求.

空间索引技术大致可分为四大类(还有其他不构成大类的小类不再详述):

2.3.1 基于二叉树的空间索引技术

索引名称 优点 缺点
KD树 存储需求较低,查询高效 无法管理海量数据,更新较麻烦
KDB树 动态索引,高效查询 删除算法效率较低,浪费空间

特点:

2.3.2 基于R树的空间索引技术

R树是B树在多维空间的扩展,具有B树的特点:

特点:

2.3.3 基于哈希格网的空间索引

基本思路:

  1. 将索引空间划分为规则的小方格
  2. 与每个格网相关联的空间目标存储在同一个磁盘页
  3. 可以通过数组下标的方式得到格网的访问地址以实现快速的空间目标查找

特点:

2.3.4 基于空间填充曲线的空间索引

上文中提到的各种三维空间编码就属于这一类.

基本思路:

  1. 将索引空间细分为许多均等的网格,并赋予其编号.常见的赋予编号的排序算法有:
    • Z排序
    • 希尔伯特排序
  2. 编号可以转换为具有代表意义的数字
  3. 多维目标可以转化为一维目标

特点:

上一篇下一篇

猜你喜欢

热点阅读