QuadTree のバッキング構造として HashMap を使用することを検討しています。モートン シーケンスを使用して、関心のある領域の各正方形を一意に識別できると思います。私の QuadTree の高さは最大で 16 であることはわかっています。私の計算では、65,536 x 65,536 のマトリックスになり、最大で 4,294,967,296 個のセルが得られるはずです。HashMap の要素が多すぎるかどうかは誰にもわかりませんか? Tree を使用して常に QuadTree を作成できましたが、HashMap を使用するとパフォーマンスが向上すると考えました。
高さ 1 == (2x2) == 4 のモートン シーケンス
高さ 2 のモートン シーケンス == (4x4) == 16
高さ 3 のモートン シーケンス == (8x8) == 64
最大高さ 3 の木の Morton Sequencing の例。
これが私が知っていることです:
- 既知の長方形の領域で緯度/経度でデータを取得します。
- データはエリア全体を完全にカバーするわけではなく、そのエリアのどこかでチャンクに統合される可能性があります。(さらに悪いケースは、4,294,967,296 セルすべてのデータです)
- データの解像度は、領域を 65k x 65k の長方形に分割することになります。
- また、データの挿入/更新のために 10 対 1 のクエリが発生する可能性が高いこともわかっています。