东大组会准备(一)论文Quad Trees A Data Structure for Retrieval on Composite Keys

空间索引
问题一 为什么需要空间索引
  • 如果要根据自己所在的位置查询附近50米的POI(商家、景点等点信息)
  • 解决方案:
    1. 计算所有POI与所在位置的距离(计算N次再比较N次) 4.6s
    2. 矩形的过滤方法(范围框起来,经纬度在矩形过滤函数规定的范围内,在求出距离小于50米的POI。)0.36s在这里插入图片描述
    3. 方法二虽然强于方法一但是的执行时间仍然比较耗时,其原因在于遍历过程,因此我们想到了索引。对维度进行B树的索引后,查询分为三个步骤。
      在这里插入图片描述
      首先根据纬度范围找到符合条件的POI,在筛选出指定经度范围的数据,最后计算距离。0.01s。

1)但是B树只能对经度或纬度索引(一维索引),与期望的不符
  我们期待的是快速找出落在某一空间范围的POI(如矩形),而不是快速找出落在某纬度或经度范围的POI,想象一下,我要查询北京某区的POI,但是B树索引不仅给我找出了北京的,还有与北京同一维度的天津、大同、甚至国外城市的POI,当数据量很大时,效率很低。
   在这里插入图片描述

既然传统的索引不能很好的索引空间数据,我们自然需要一种方法能对空间数据进行索引,即空间索引。
空间索引四叉树经典论文

Quad Trees A Data Structure for Retrieval on Composite Keys

  • 一种用于多key值组合检索的数据结构

总纲

  • 四叉树是用于存储那些便于组合key键检索的信息的数据结构。
  • 这种结构可以推广到任意维度,本文只讨论二维。
  • 论文给出了前向插入和平衡插入四叉树的算法。
  • 提出了区域检索算法
  • 删除和合并显得很难

摘要

  • 解决多键组合搜索问题的有效方式是将记录映射到多维空间中去,每一个属性当成一个维度。
  • 一个查询考虑结果存在与否的记录满足给定的标准。该标准是,该记录是否为给定空间维度中的子集。
  • 满足即返回
  • 单键检索目前研究的已经很好了,经验告诉我们二叉树对表示线性有序数据是一个很好的数据结构。而平衡二叉树提供了一个有保证的快速结构。
  • 这篇论文将会推广二叉树来处理固有的二维结构的数据。例如:找出所有距离芝加哥或者西雅图300里的城市
  • 提出用于解决上述问题的结构称为四叉树。
  • 这些基本概念很容易被推广到任意维度

定义和符号

  • 拥有两维键的数据记录将会存储到一个树中,该树每个节点的出度都是四。每个节点都存储一条记录,同时拥有四个孩子节点。树的根节点将其领域划分为四个象限,分别为NE(东北)NW(东西),SW(西南),SE(西北)与地图类似。
  • 下图表示了一棵简单的树与它代表的记录之间的相应关系
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 如果节点位于象限线上,依照惯例一三象限是闭合的,在哪个象限的线上就划分到哪个象限中去,能够快速定位节点在根的哪个象限。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

总结

  • 四叉树的树枝就是一个索引,叶子结点存的才是实际的信息,相当于不断向下划分再划分。可以倒过来看,一张大网格里边有上万个小格,对每个小格的定位是通过这张大网的不断划分得到的。
  • 四叉树的结构比较简单,并且当空间数据对象分布比较均匀时,具有比较高的空间数据插入和查询效率
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值