R-Tree的概念

R-Tree可以称作空间索引的基石,目前流行的时空索引架构都是基于R-Tree衍生而来。

R-Tree的概念

R-Tree 主要用于索引多维信息(如地理点坐标、矩形或多边形)的一种数据结构。R -Tree是由Guttman在1984年提出的,在理论和应用上都有重要的应用。 R-Tree在现实世界中的一个常见用法是存储空间对象,如餐馆位置或典型地图所用的多边形: 街道、建筑物、湖泊轮廓、海岸线等,然后快速找到问题的答案,如“在我当前位置2公里内找到所有博物馆”、“检索我所在位置2公里内的所有道路段”(将它们显示在导航系统中)或“找到最近的加油站”(尽管没有考虑道路)。R-Tree 还可以加速最近邻搜索各种距离度量,包括大圆距离。

R-Tree其用一个边平行于坐标轴的最小的矩形(MBR,Minimum Bounding Box)框住空间对象。在查询时,只需要先找到空间对象的MBR即可,如下图所示:

与B-Tree类似,R-Tree是一个平衡的多路查找树,在树的节点上利用到了MBR的信息进行查找。

下图显示RTree的树形结构,其中MBR即是(x1,y1,x2,y2),数据都保存在叶子节点(Entry)。

mbr=Rectangle [x1=14.0, y1=14.0, x2=86.0, y2=91.0]mbr=Rectangle [x1=36.0, y1=60.0, x2=59.0, y2=91.0]entry=Entry [value=1, geometry=Point [x=59.0, y=91.0]]entry=Entry [value=3, geometry=Point [x=36.0, y=60.0]]mbr=Rectangle [x1=14.0, y1=14.0, x2=86.0, y2=37.0]entry=Entry [value=5, geometry=Point [x=14.0, y=37.0]]entry=Entry [value=4, geometry=Point [x=57.0, y=36.0]]entry=Entry [value=2, geometry=Point [x=86.0, y=14.0]]

R-Tree的变种

R-Tree的变种有很多,

  1. R*Tree:R*树通过结合修改后的节点拆分算法和在节点溢出时强制重新插入的概念,去尝试减少覆盖和重叠,提高查询效率。
  2. R+Tree:R+树是R树和k-d树这两种空间检索方式的折中办法。

基于不同的批量加载算法,有STR(Sort-Tile-Recursive)RTree、Nearest-X RTree、Packed Hilbert RTree(Space-filling Curve)等常见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/623682.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考-系统集成项目管理中级--进度管理(输入输出很重要!!!本章占分较高,着重复习)

本章历年考题分值统计(16年11月及以后按新教材考的) 本章重点常考知识点汇总清单(学握部分可直接理解记忆) 12、参数估算:参数估算是一种基于历史数据和项目参数,使用某种算法来计算成本或持续时间的估算技术。参数估算是指利用历史数据之间的统计关系和…

Turbo并发插件使用说明

文章目录 一、安装Turbo Intruder插件1. 安装方式12. 安装方式2二、并发短信验证码轰炸示例一、安装Turbo Intruder插件 1. 安装方式1 在BurpSuite的扩展里的BApp商店可直接安装 打开BurpSuite,点击扩展点击BApp商店搜索turbo Intruder选择Turbo Intruder插件点击安装2. 安装…

5_vscode+valgrind+gdb调试程序

需求 项目程序, 读取串口数据, 出现程序崩溃问题valgrind 可以调试定位内存问题: 内存泄漏,非法地址访问,越界访问等内存问题vscode gdb 可视化调试效果, 比命令行简单快捷很多期望使用vscode valgrind gdb 调试程序内存异常, 崩溃退出的问题 环境准备 sudo apt install v…

(GPT-PLUS,RawChat,choose-car,Kimi,智谱清言)分享5个好用的ChatGPT

目录 1、GPT-PLUS拼车 2、RawChat公益站点 3、GPT-PLUS共享 4、choose-car 5、AI提示器 6、Kimi.ai - 帮你看更大的世界 7、智谱清言 1、GPT-PLUS拼车 https://home.topai.vip/list GPT-PLUS拼车 TOPAI宇宙 | Link3 2、RawChat公益站点 https://sharedchat.cn/ 3、GPT-PLUS共享…

书生浦语学习第二课 轻松玩转书生浦语趣味Demo

本节课让同学们实践 4 个内容,分别是:部署 InternLM2-Chat-1.8B 模型进行智能对话、部署一期实战营优秀作品 八戒-Chat-1.8B 模型、 运行 Lagent 智能体 Demo、实践部署 浦语灵笔2 模型。 第一步,打开 Intern Studio 界面,点击 创…

GDPU Java 天码行空8

文章目录 (一)实验目的(二)实验内容和步骤1、LinkedList 实现队列💖 MyQueueDemo.java💖 运行结果: 2、集合的嵌套遍历💖 StudentDemo.java💖 运行结果: 3、类…

清明三天,用Python赚了4万?

每年4月,是Python圈子里接私活的旺季,特别是在节假日这种数据暴增的时间段,爬虫采集、逆向破解类的私活订单会集中爆发,量大价高。几乎所有的圈内人都在趁着旺季接私活。 正好,我昨天就做了一单爬虫逆向私活&#xff…

MedSAM环境搭建推理测试

引子 之前分享过一篇SAM(感兴趣的,请移步Segment Anything(SAM)环境安装&代码调试_segment anything环境-CSDN博客)环境搭建&推理测试,虽然话说Segment Anything,但是原始模型对于一些…

OCCT几何内核开发-TopoDS_Shape

如果要基于OCCT几何内核搞建模算法,特别是想开发自己的算法,需要深刻理解拓扑与几何的关系、相关的数据结构,TopoDS_Shape、TopoDS_TShape、BRep_TFace、Tolerances等。 一个简单Box的数据结构 两个面缝合(Sewing)后的…

4.配置USART串口实现printf打印

通过TTL转USB实现电脑和单片机连通,是我们调试必不可少的工具 查看原理图,使用USART1,它们的TX和RX分别在PA9和PA10 新建Usart.c存放串口模块的初始化 这段代码是复制了正点原子的工程,添加到前面 #if SYSTEM_SUPPORT_OS #include "includes.h" //ucos 使用 …

JS算法题:找到数组中第 k 大的元素

问题描述: 给定一个未排序的整数数组,找到其中第 k 大的元素。注意,你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。 举个例子: 如果给定数组是 [3,2,1,5,6,4],k 是 2,那么第 2 大的元素…

深入理解神经网络学习率(定义、影响因素、常见调参方法、关键代码实现)

目录 什么是学习率? 有哪些影响因素? 常用调整方法? 博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平…