RBush — 基于 JavaScript R-tree 的高性能 2D 空间索引,用于点和矩形
RBush 是一个高性能的 JavaScript 库,用于对点和矩形进行 2D 空间索引。它基于一个优化的 R-tree 数据结构,支持 批量插入。
空间索引 是一种特殊的数据结构,用于处理点和矩形,可以非常高效地执行诸如 "所有位于此边界框内的项" 等查询(例如比循环遍历所有项快几百倍)。它通常用于地图和数据可视化中。
演示中包含了从 50 万个随机点生成的树的可视化。打开 Web 控制台查看基准测试;单击按钮添加或删除项目;单击在 Cursor 下执行搜索。
RBush 的可选参数定义了树节点中条目的最大数量。
9(默认使用)对于大多数应用来说是一个合理的选择。
更高的值意味着更快的插入速度和更慢的搜索速度,反之亦然。
const tree = new RBush(16);插入一个条目:
const item = {
minX: 20,
minY: 40,
maxX: 30,
maxY: 50,
foo: 'bar'
};
tree.insert(item);移除一个先前插入的条目:
tree.remove(item);默认情况下,RBush 通过引用移除对象。
然而,你可以传入一个自定义的 equals 函数来按值进行比较以进行移除,
这在当你只有需要移除对象的副本时(例如从服务器加载)非常有用:
tree.remove(itemCopy, (a, b) => {
retu暂无开放 Issues,或尚未同步最近议题。