c# - 在 R* Tree 中插入新叶子

标签 c# java gis spatial-index r-tree

R*Tree的插入算法的步骤是什么?

注意:我希望能够通过插入来构建树。无论我选择什么条件来选择最佳叶子,它总是给我最大重叠和最大面积覆盖的垃圾树(在树的每一层添加后测试最小重叠面积,树每一层的最小扩展率等) .

现在这个 R* 树是如何通过插入如此漂亮地构建的(来自 Wikipedia ):

enter image description here

最佳答案

R*-Tree 不仅仅是一种不同的插入叶策略。

spitting 策略(周边!)同样重要,因为它更喜欢“二次”页面,而不是 Ang-Tan 等其他策略产生的切片。

此外,这可能是获得更漂亮的树的关键,R*-tree 执行一种重新平衡以主动避免错误的 split 。不是 split ,当一个节点过满时,它也会删除最不重要的元素(或子树 - 你在所有级别都需要它)并重新插入它们。这并不总能防止溢出,但可以减少树中的重叠。

但是当然你在实现中可能会犯各种错误,R-tree 仍然可以工作,只是因为结构不好而表现不佳。你的树有多糟糕,你有截图吗?

关于c# - 在 R* Tree 中插入新叶子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765851/

相关文章:

google-bigquery - 6小时后查询超时,如何优化?

c# - 如何在 asp.net 网站中允许撇号

c# - 为什么此代码在 C# 中无效?

java - 使用 pdfcopy 创建 pdf 时返回空文档

java - 关闭迭代器中的 BufferedReader 以返回文件行

r - 使用 geom_polygon 绘制 map 的地理边界不完整 - ggplot2

c# - WindowsIdentity.Impersonate in ASP.NET 随机 "Invalid token for impersonation - it cannot be duplicated"

c# - ClickOnce 和不活动的主窗口

java - 当创建一个类来保存变量时,变量应该始终是静态的吗?

geometry - "ray through vertex"检测多边形中的点时的特殊情况