2017-08-06 3 views
-1

私は多くのビルディングフットプリントを持ち、それらをr-ツリー構造に格納したいと考えています。rツリー構造のリーフノードは最小境界矩形私のケースでは実際の物体の実際の物体(MBR)を足跡を構築します。しかし、私は、非リーフノードのMBRがどのように計算できるのか理解できず、どのようにしてそれを行うことができるか知りたい(写真のグリーンボックス内)。私は可能な解決策がたくさんあると思いますが、私はただ一つしか知りたくありません。それは子孫データのバウンディングボックスなるよう Rtree exampler-tree非リーフノードの最小境界矩形を計算する方法

答えて

0

内側ノードのバウンディングボックスは、と全く同じように葉ノードと同じ方法で計算されます。

各軸に最小値と最大値が必要です。

+0

私はあなたの答えを尊重します。より詳細な説明ができれば、非常に役に立ちます。たとえば、CがNにないため、緑の境界ボックス(N)にC – blackSwan

+0

が含まれていない理由を説明できますか。 CはPにあります。リーフの場合と同様に、ノードの内容の境界ボックスのみを計算します。 –

+0

追加するものはありませんが、MBRを計算する方法は「各軸の最小値と最大値」です。 –

0

非リーフノードのMBRは、(リーフまたは非リーフノードすることができます)その子ノードの組合です。

あなたの写真で二次元の例を取っ​​て、子ノードA(X_amin, X_amax, Y_amin, Y_amax)B(X_bmin, X_bmax, Y_bmin, Y_bmax)、葉でない親ノードはN(min(X_amin, X_bmin), max(X_amax, X_bmax), min(Y_amin, Y_bmin), max(Y_amax, Y_bmax))とします。

+0

私はそれを知っていますが、これらの緑色のMBRがどのように構成されているのか分かりません。たとえば、NにC – blackSwan

+1

@blackSwanが含まれない理由MBRの計算方法に関する問題の代わりに、rtree構築の過程で** chooseNode **と** nodeSplit **戦略について質問しています。たとえば、オリジナルのGuttmanの方法では、挿入データを含めるために、最小の拡大率を持つ子ノードを選択します。他にもっと複雑で効率的な方法があります。 [ペーパー](http://www-db.deis.unibo.it/courses/SI-LS/papers/Gut84.pdf)またはこの[Java実装](https://github.com/davidmoten/)を参照してください。 rtree)を参照してください。 – Ambling

関連する問題