问题标签 [r-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
585 浏览

c++ - libspatialindex 是否需要重新序列化以进行简单更新?

我正在寻找具有以下功能的桌面应用程序(没有服务器客户端,只需要编辑存储在磁盘中的数据)的 ac 或 c++ 库

  • 将空间数据存储在虚拟内存中,因此空间查询速度很快
  • 可以选择以智能方式在磁盘中维护等效数据进行更新。更新不必是即时的,但它们可以被缓冲。

. libspatialindex 似乎满足要求。但是从网页上看不清楚的一件事是,假设我从磁盘加载了大量数据,只想更新一个很小的对象。libspatialindex 是否重新序列化整个数据并将其写入磁盘,或者只更新需要更改的部分是否明智?

带有 RTree 的 sqlite 似乎正在实现这一点。但是,我想要一个简单的 c++ 库而不是整个 sql 的东西。

有没有其他的选择。GEOS 是否有任何智能磁盘映像更新功能?

0 投票
1 回答
242 浏览

c++ - 作为对象传递给 MyDataStream 流(argv[1])的输入数据文件的格式应该是什么

我正在使用“libspatialindex”库来创建 R-tree 索引。我的数据是二维的,具有以下值:

数据描述如下:

我正在尝试将上述数据批量加载到 R-Tree 中。为此,我使用来自 libspatialindex 的以下测试代码。但是,我不知道作为对象传递给 * MyDataStream stream(argv[1]);的输入数据文件的格式应该是什么。*

我正在使用的测试代码是:

0 投票
3 回答
2536 浏览

c++ - 处理二维线段的有效方法

我有大量的二维线段。所以,我知道;每条线段的行号、Begin (X,Y,Z) 和 End (x,Y,Z)。我想获得给定线段的邻近线段。同样适用于所有人。

要找到接近度,我可以应用

如果我说我的数据是这样的;

在此处输入图像描述 所以,最后我想获得接近线作为每个线段的向量。我听说这种向量的向量可以用 r-tree 数据结构。我正在搜索它,但仍然找不到适合我的相关内容。我还查看了opencv,有一个r-tree,但它说明了分类器和训练阶段......所以,我想它不适合我。

谁能知道如何获得 line no ,然后是 ex 的相邻线路;

1 = {2,4,,7,66,32,12}

2 = {1,4,5,6}

3 = {...} .. .. 这种向量的向量使用r-tree。

我知道,我们可以使用 kd-tree 获得这种类型的向量。但它是为点数据设计的。因此,我认为在这种情况下很难使用 kd-tree。请提供任何帮助,谢谢。

0 投票
1 回答
640 浏览

algorithm - 基于磁盘的多维数据索引

我想对多维数据使用某种基于磁盘的索引。我想能够

  1. 执行范围搜索 - (10 - 20% 的应用程序使用)
  2. 更快的检索 - (80%)

数据大小(以 GB 为单位)和记录数以十亿为单位

更具体地说,我想实现 R-Tree 或 X-Tree 之类的东西。但我认为开始使用 B-Trees 是个好主意。尽管所有数据库都提供了非常有效的 B-Tree 实现,但我希望能够调整设计,将可能的基于应用程序的启发式添加到设计中,因此我更愿意实现自己的一些东西或使用一些库作为起点.

任何指向库的指针或建议都会非常有帮助。提前致谢

0 投票
1 回答
146 浏览

database - r* 树重新插入

重新插入如何工作?当我选择要重新插入的条目时,我再次运行插入算法?所以重新插入的条目可以在中的任何地方?或者这些条目只能在兄弟叶子中,事实上,只在叶子中,它们与我重新插入的叶子具有相同的父节点?

0 投票
1 回答
908 浏览

java - R-tree 节点应该有多少个孩子(最小,最大)?

我有 500.000 个独特的 3D 点,我想将它们插入到 R-tree 中。R-tree 的构造函数接受两个参数:

  • 一个节点可以拥有的最小子节点数
  • 一个节点可以拥有的最大子节点数

我在wikipedia上读到:“......最佳性能已经体验到最小填充为最大条目数的 30%–40%。”

那么这两个参数的最佳值是多少?

0 投票
2 回答
2769 浏览

c# - IComparer 问题

我有一个奇怪的问题,我没有线索来追踪原因。我会尽量清楚地描述我的问题。

我有一个 RTree 类,在这个类中,我想比较两个矩形(这里我称为信封,它包含 minX、minY、maxX、maxY),所以我们有一个比较器类如下:

使用这个比较器,我们可以维护一个信封的 ArrayList 并轻松对其进行排序,信封是随机添加的。当我们调用以下代码时,我们遇到了

无法排序,因为 IComparer.Compare() 方法返回不一致的结果。一个值与自身比较不相等,或者一个值与另一个值重复比较会产生不同的结果。

这是奇怪的部分。此错误仅发生在未安装 VisualStudio 的 .net 4.0 中。如果机器安装了 VS 或 .net 4.5,则此问题无法再次出现。

在这种情况下,我无法弄清楚它为什么会发生。如果您对调试此类问题有任何经验,那就太好了,我很感激。

谢谢,霍华德

0 投票
1 回答
158 浏览

postgresql - LAB颜色的Postgres空间索引?

我有一个包含照片的 Postgres 数据库,我想让人们按颜色搜索它们。我已经为每张照片定义了多种颜色(1-5),并且我正在使用LAB 颜色(感知颜色空间,在三个维度中定义:亮度加两个颜色维度)。

我的问题是:在 Postgres 中执行此操作的最佳方法是什么?它本质上是一个三维搜索,所以我应该使用空间索引吗?

我的要求是:

  • 按颜色运行边界框搜索(查找颜色在距离 X 与颜色 Y 之间的照片)。
  • 按与颜色 X 的距离对结果进行排名(首先返回颜色最接近颜色 Y 的照片)
  • r-tree-like 性能。

我已经使用 Python 中的 rtree 索引构建了一个概念验证,并且运行良好。我只是不确定如何使用 Postgres 表来复制它。

0 投票
3 回答
2897 浏览

algorithm - 二次分裂和线性分裂的区别

我试图了解 r-tree 的工作原理,并看到有两种类型的拆分:二次和线性。

线性和二次之间实际上有什么区别?在哪种情况下,一个会比另一个更受欢迎?

0 投票
1 回答
155 浏览

javascript - 如何使用 rtree 组织 HTML 元素以减少必须运行重叠检查的次数?

我有许多元素需要使用 javascript 添加到页面,其中包含从服务器提取的数据及其位置信息。我想安排它们,以免重叠。例如,element 5将移动到细绿色框所在的位置,使其不重叠element 3

我已经成功创建了一个决定两个框是否重叠的函数。例如,如果我运行overlaps($('#element5')[0],$('#element3')[0])它会返回true.

但是,使用此函数,我将不得不遍历每个元素并将其与其他所有元素进行比较。因此,对于 50 个元素,我需要运行该overlays函数 1275 次,这需要很长时间才能加载。

我决定最好先创建一个 rtree 来组织元素,这样我就可以轻松计算出运行覆盖函数所需的 2 个元素,从而显着减少覆盖函数的运行次数。但是,我对这将如何工作感到非常困惑。我将如何组织它们,以便我只需要运行少量的函数?rtree 的 2 个边界框不会重叠并使这种技术变得多余吗?最好的方法是什么?

在此处输入图像描述