- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想完全理解 Java 上的二维 RTree,但我在解释中迷路了,我希望有人能告诉我它们是如何工作的。
我对他们的了解是这样的:
您从具有最大条目数 M 的节点列表开始,当您尝试获得更多值时,您必须拆分该节点,我必须保留一个具有两个叶子的根节点。我不想讨论最好的拆分方法,我们正在考虑一个真正简单的 RTree。
现在我要写一个我认为它是如何工作的基本代码:
class RTree<E> {
//I need a root which is a list of nodes.
public NodeList root;
//From data we create rectangles that contain values
class Rectangle {
public double x;
public double y;
}
class Node {
public E valor;
public Rectangle rect;
}
class ListNodo {
public Node node;
public NodeList next;
}
}
我没有得到什么(抱歉,如果这是如此基本):
我是否必须要求用户输入坐标值?
对于基本情况,插入方法将如何工作,我会询问哪些参数?
我是不是都错了?
最佳答案
二维 R 树中的矩形是边界框。他们需要四个坐标,例如 OleV 所说的左、右、上和下,而不仅仅是 x 和 y。
树中的一个非叶节点包含许多条目,每个条目都有一个边界框和一个指向下一层中另一个树节点的链接。条目的边界框包含下面节点中所有条目的边界框。
叶节点类似,但每个条目都有一个边界框和一个指向数据对象的链接,它不是树的一部分。边界框包含数据对象。
我们必须找到一种方法来找到对象的边界框。要插入一个对象,找出它的边界框并组成一个叶条目。然后,从根部开始,向下延伸至叶子。在叶子上方的每个级别,通过将其边界框与条目的边界框进行比较,为新对象选择一个子树。选择一棵数据项接近新对象的子树。
当您到达叶级别时,将新条目添加到该节点。如果条目太多,您可能需要拆分节点。
在下降的过程中,您可能需要扩大非叶条目中的边界框以包含新条目。
关于java - 傻瓜 RTrees,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40582125/
我测试了 boost.geometry.index.rtree (boost 1.59 www.boost.org) 和 superliminal.RTree ( http://superlimina
我正在尝试在 python 中剪辑空间数据,但是当我运行我的代码时...... europe = gpd.clip(worldmap, europe_bound_gdf) ...我收到错误: ( Im
这是我的代码片段。我正在尝试为顶点类对象 RTreeVertex 创建一个 rtree 树。 class Entity { public: int num; public: Entity(in
我想完全理解 Java 上的二维 RTree,但我在解释中迷路了,我希望有人能告诉我它们是如何工作的。 我对他们的了解是这样的: 您从具有最大条目数 M 的节点列表开始,当您尝试获得更多值时,您必须拆
我正在尝试了解 RTree 算法的基础知识,并且正在尝试弄清楚它是如何执行搜索的,例如1 公里内的所有餐厅。我们会将所有对象存储在数据库中的矩形中,然后我们(可能)会根据我们当前的位置构建一个查询矩形
我需要构建一个 R树使用给定的数据点。我已经搜索了 R 树的实现。当给定矩形坐标作为输入时,我发现所有实现都构建了 r 树。当给定数据点本身时,我需要构建 r 树(它可以是一维的)。代码应该负责创建包
我很疑惑。考虑以下代码,稍微改编自 http://www.boost.org/doc/libs/1_57_0/libs/geometry/doc/html/geometry/spatial_index
我一直在尝试调试使用 Pythons RTree version 0.8.2 的软件包中的一些奇怪行为. 为了跟踪问题,我需要每隔几分钟序列化一次 RTree 实例,当问题发生时我可以得到一个非常准确
我正在关注 boost geometry rtree文档。我能够使用一个框执行空间查询,以检索与其相交的 rtree 元素列表。 我想知道是否有一种方法可以在 rtree 和另一个 rtree(相同类
我使用 OpenCv 进行图像分类。训练后我将模型保存到 *.yaml.gz。然后我将这个文件添加到嵌入式资源中。现在我需要从资源加载模型,但 OpenCv 只允许从文件或字符串加载。 HMODULE
我正在 heroku 上部署一个 GIS 应用程序。我在我的电脑上开发了它,当我部署它时,rtree 不见了。我无法通过 pip 安装它,因为 pip 安装有问题,正如 rtree 开发人员自己所说的
我正在尝试使用Rtree并面对这种奇怪的行为:INSERT语句在普通表中正常工作,但在rtree表中却失败了: 这个例子很好用: DROP TABLE IF EXISTS ltssoffsets; C
我想使用 Boost C++ 库找到在 rtree 中索引的所有元素,这些元素与带孔的多边形的外环相交但不完全在任何孔内。 我知道如何让元素与外环相交: // Constructing the ext
经过一些阅读后,我了解到层次结构遍历虽然可能在 boost rtree 中并未得到官方支持。我有几个不同的用例,我可以在没有层次结构遍历的情况下进行管理,但我不确定效率。因此,我正在寻求有关 boos
将新框插入 rtree 时,我想首先检查树中是否已经存在相同的框。如果是,我只想获取该值,否则我需要插入一个新值。执行此操作的最佳(即最有效)方法是什么? 我可以通过调用 nearest(box,1)
我正在尝试在我的一个项目中使用 boost::geometry 的 rtree DS,但我发现很难浏览文档。某些方法的文档很少,我找不到足够的例子。现在,我正在尝试构建示例程序,以便进一步构建它。 因
Pickling Rtree 看起来并不简单,因为它是一个 ctypes 包装器。 This comment在 SO 秒假设。 但是,在(很多)旧的@sgillies post (这个库的作者),在评
我在 5 维空间中有大约 10 K 个点。我们可以假设这些点随机分布在空间 (0,0,0,0,0) 和 (100,100,100,100,100) 中。显然,整个数据集可以很容易地驻留在内存中。 我想
Boost rtree 为某些与段查询的交集给出了错误的交集结果。在这种情况下,边界框是 y=0 处的 y 平面 10x10 正方形。我正在查询从 (2, 1, 0) 到 (2, 1, 10) 的 z
我有一个城市的简化 map ,其中有街道作为线串,地址作为点。我需要找到从每个点到任何街道线的最近路径。我有一个执行此操作的工作脚本,但它在多项式时间内运行,因为它嵌套了 for 循环。对于 150
我是一名优秀的程序员,十分优秀!