我有许多元素需要使用 javascript 添加到页面,其中包含从服务器提取的数据及其位置信息。我想安排它们,以免重叠。例如,element 5
将移动到细绿色框所在的位置,使其不重叠element 3
。
我已经成功创建了一个决定两个框是否重叠的函数。例如,如果我运行overlaps($('#element5')[0],$('#element3')[0])
它会返回true
.
但是,使用此函数,我将不得不遍历每个元素并将其与其他所有元素进行比较。因此,对于 50 个元素,我需要运行该overlays
函数 1275 次,这需要很长时间才能加载。
我决定最好先创建一个 rtree 来组织元素,这样我就可以轻松计算出运行覆盖函数所需的 2 个元素,从而显着减少覆盖函数的运行次数。但是,我对这将如何工作感到非常困惑。我将如何组织它们,以便我只需要运行少量的函数?rtree 的 2 个边界框不会重叠并使这种技术变得多余吗?最好的方法是什么?