我读到了R-Tree,kd-tree,边界间隔层次结构等用于空间分区。我发现这些数据结构对于空间查询很有用。虽然,他们进行分区,但我不知道如何从数据结构中检索这些分区。因此,我的问题归结为"给定一个数字 N 和一个包含 X 个多边形的地图,我可以获得包含大致相等数量的多边形的 N 个分区吗?
好吧,如果你想要 N 个分区,R-Tree 的任何常见批量加载策略都应该有效。它不一定是最佳的,但您可以强制它们生成大小大致相等的 N 个分区。
k-d树将具有既不在左侧也不在右侧的对象。但是您可以使用 k-d-tree 批量加载策略并对其进行修改以生成 N 个分区。实际上,另一种简单但有时非常有效的批量加载和R树方法。
当你将 N 约束为 2 的幂,甚至更好的是某个数的 d
次幂时,分裂通常会变得更好。因此,将 3D 数据集拆分为 9 页比将其拆分为 8 页要干净得多。