What I Read(3) 地理空间数据库原理(C) 地理空间数据索引绪论

引用部分均为笔者思考.

1. 引入

1.1 何谓地理空间索引

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

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

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

1.2 为何需要空间索引

  • 几何数据的特点:
    • 形状不规则,实体间空间关系复杂,存储需求量大
    • 实体间的空间操作计算代价比传统的连接操作复杂,计算量大

即:没有索引不行

  • 传统索引技术面对空间数据的不足:
    • 传统的索引技术面向的是一维/良序的数据
    • 空间数据顺序难以确定,且一般为多维,无法使用这些传统的索引技术

2. 空间索引的分类

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

2.1 按搜索对象分类

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

可分为:

  • 基于点区域划分:
    • KD树
    • B树
    • KDB树
    • 点四叉树
  • 基于面区域划分:
    • 区域四叉树
    • R树家族
    • 格网索引机制
  • 基于三维体区域划分(他们大多数都停留在学术或专业领域):
    • Morton编码
    • 无边界QU码
    • 球面QTM编码
    • 球面HSDS编码

2.2 按空间分割法分类

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

  • 对象分割
  • 空间分割

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

2.2.1 对象分割

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

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

2.2.2 规则分割

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

常见的分隔法:

  • 规则格网
  • 四叉树/八叉树
  • KD树
  • BSP树
  • R树

2.3 按技术分类

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

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

  • 基于二叉树的空间索引技术
  • 基于R树的空间索引技术
  • 基于哈希格网的空间索引技术
  • 基于空间填充曲线的空间索引技术

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. 多维目标可以转化为一维目标

特点:

  • 常用于四叉树索引中
  • 查询性能不如R树,但增/删/改效率更高
    • 适用于索引经常变更的场景
  • 隐形位置表达
  • 换算计算量大
  • 数据存储量大
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容