问题标签 [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.
c++ - libspatialindex 是否需要重新序列化以进行简单更新?
我正在寻找具有以下功能的桌面应用程序(没有服务器客户端,只需要编辑存储在磁盘中的数据)的 ac 或 c++ 库
- 将空间数据存储在虚拟内存中,因此空间查询速度很快
- 可以选择以智能方式在磁盘中维护等效数据进行更新。更新不必是即时的,但它们可以被缓冲。
. libspatialindex 似乎满足要求。但是从网页上看不清楚的一件事是,假设我从磁盘加载了大量数据,只想更新一个很小的对象。libspatialindex 是否重新序列化整个数据并将其写入磁盘,或者只更新需要更改的部分是否明智?
带有 RTree 的 sqlite 似乎正在实现这一点。但是,我想要一个简单的 c++ 库而不是整个 sql 的东西。
有没有其他的选择。GEOS 是否有任何智能磁盘映像更新功能?
c++ - 作为对象传递给 MyDataStream 流(argv[1])的输入数据文件的格式应该是什么
我正在使用“libspatialindex”库来创建 R-tree 索引。我的数据是二维的,具有以下值:
数据描述如下:
我正在尝试将上述数据批量加载到 R-Tree 中。为此,我使用来自 libspatialindex 的以下测试代码。但是,我不知道作为对象传递给 * MyDataStream stream(argv[1]);的输入数据文件的格式应该是什么。*
我正在使用的测试代码是:
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。请提供任何帮助,谢谢。
algorithm - 基于磁盘的多维数据索引
我想对多维数据使用某种基于磁盘的索引。我想能够
- 执行范围搜索 - (10 - 20% 的应用程序使用)
- 更快的检索 - (80%)
数据大小(以 GB 为单位)和记录数以十亿为单位
更具体地说,我想实现 R-Tree 或 X-Tree 之类的东西。但我认为开始使用 B-Trees 是个好主意。尽管所有数据库都提供了非常有效的 B-Tree 实现,但我希望能够调整设计,将可能的基于应用程序的启发式添加到设计中,因此我更愿意实现自己的一些东西或使用一些库作为起点.
任何指向库的指针或建议都会非常有帮助。提前致谢
database - r* 树重新插入
重新插入如何工作?当我选择要重新插入的条目时,我再次运行插入算法?所以重新插入的条目可以在树中的任何地方?或者这些条目只能在兄弟叶子中,事实上,只在叶子中,它们与我重新插入的叶子具有相同的父节点?
java - R-tree 节点应该有多少个孩子(最小,最大)?
我有 500.000 个独特的 3D 点,我想将它们插入到 R-tree 中。R-tree 的构造函数接受两个参数:
- 一个节点可以拥有的最小子节点数
- 一个节点可以拥有的最大子节点数
我在wikipedia上读到:“......最佳性能已经体验到最小填充为最大条目数的 30%–40%。”
那么这两个参数的最佳值是多少?
c# - IComparer 问题
我有一个奇怪的问题,我没有线索来追踪原因。我会尽量清楚地描述我的问题。
我有一个 RTree 类,在这个类中,我想比较两个矩形(这里我称为信封,它包含 minX、minY、maxX、maxY),所以我们有一个比较器类如下:
使用这个比较器,我们可以维护一个信封的 ArrayList 并轻松对其进行排序,信封是随机添加的。当我们调用以下代码时,我们遇到了
无法排序,因为 IComparer.Compare() 方法返回不一致的结果。一个值与自身比较不相等,或者一个值与另一个值重复比较会产生不同的结果。
这是奇怪的部分。此错误仅发生在未安装 VisualStudio 的 .net 4.0 中。如果机器安装了 VS 或 .net 4.5,则此问题无法再次出现。
在这种情况下,我无法弄清楚它为什么会发生。如果您对调试此类问题有任何经验,那就太好了,我很感激。
谢谢,霍华德
postgresql - LAB颜色的Postgres空间索引?
我有一个包含照片的 Postgres 数据库,我想让人们按颜色搜索它们。我已经为每张照片定义了多种颜色(1-5),并且我正在使用LAB 颜色(感知颜色空间,在三个维度中定义:亮度加两个颜色维度)。
我的问题是:在 Postgres 中执行此操作的最佳方法是什么?它本质上是一个三维搜索,所以我应该使用空间索引吗?
我的要求是:
- 按颜色运行边界框搜索(查找颜色在距离 X 与颜色 Y 之间的照片)。
- 按与颜色 X 的距离对结果进行排名(首先返回颜色最接近颜色 Y 的照片)
- r-tree-like 性能。
我已经使用 Python 中的 rtree 索引构建了一个概念验证,并且运行良好。我只是不确定如何使用 Postgres 表来复制它。
algorithm - 二次分裂和线性分裂的区别
我试图了解 r-tree 的工作原理,并看到有两种类型的拆分:二次和线性。
线性和二次之间实际上有什么区别?在哪种情况下,一个会比另一个更受欢迎?
javascript - 如何使用 rtree 组织 HTML 元素以减少必须运行重叠检查的次数?
我有许多元素需要使用 javascript 添加到页面,其中包含从服务器提取的数据及其位置信息。我想安排它们,以免重叠。例如,element 5
将移动到细绿色框所在的位置,使其不重叠element 3
。
我已经成功创建了一个决定两个框是否重叠的函数。例如,如果我运行overlaps($('#element5')[0],$('#element3')[0])
它会返回true
.
但是,使用此函数,我将不得不遍历每个元素并将其与其他所有元素进行比较。因此,对于 50 个元素,我需要运行该overlays
函数 1275 次,这需要很长时间才能加载。
我决定最好先创建一个 rtree 来组织元素,这样我就可以轻松计算出运行覆盖函数所需的 2 个元素,从而显着减少覆盖函数的运行次数。但是,我对这将如何工作感到非常困惑。我将如何组织它们,以便我只需要运行少量的函数?rtree 的 2 个边界框不会重叠并使这种技术变得多余吗?最好的方法是什么?