代码之家  ›  专栏  ›  技术社区  ›  TheCloudlessSky

当使用二维时,R-树能保持z-顺序吗?

  •  3
  • TheCloudlessSky  · 技术社区  · 15 年前

    我正在基于Guttman的原始论文编写一个R树的实现。我在考虑为我正在编写的一个程序使用R-树,这个程序在屏幕上有很多矩形,可以用鼠标移动/调整大小。

    例如,如果我移动一个对象,它会被删除然后重新插入。当它被重新插入时,它所插入到的节点将无法跟踪正确的顺序。我见过的大多数R-树的实现都使用数组,只找到空位置。重新插入基本上会破坏任何z顺序定位。

    所以当我画所有与矩形相交的矩形时,它们返回的顺序不一定正确。

    我的假设错了吗?我想不用数组,我可以用AVL或红黑树,用 Comparer 在z索引上进行比较以插入到树中。这样,z-顺序总是保持不变的(这是最重要的因素)。

    我也只是想在他们回来的时候把他们分类,但我想这可能会更贵。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Andrew_B    15 年前

    R-tree不应该以某种方式排序应答记录。

    只需整理答案。不会太慢。

    顺便说一句,我可以把我的r-tree代码寄给你。这对我来说很好,但如果有人能检查一下古特曼或贝克曼在他们的论文里写的是什么,那将是非常有用的。。。

    空间索引的顺序从本质上讲不同于严格的顺序…这是空间索引和B+树的区别。

    也可以有两个索引并将它们连接起来。 你真的需要舒尔指数吗?有什么事进展缓慢?