问题描述
我正在使用开源RTree库(link) 我通过添加边界框来创建rtree实例。 然后,我将搜索应用为:
Map<String,Rectangle> nameByBoundingBox = new HashMap();
RTree<String,Rectangle> tree = RTree.create();
...populate nameByBoundingBox,tree with same rectangles
for(Map.Entry<String,Rectangle> entry : nameByBoundingBox.entrySet()) {
tree.search(entry.getValue(),new Func2<Rectangle,Rectangle,Boolean>() {
public Boolean call(Rectangle g,Rectangle r) {
return g.distance(r) == 0.0;
}
})
.forEach((Entry<String,Rectangle> rectangle) -> {
// don't pair up with itself
if(!rectangle.value().equals(entry.getKey())) {
....do something
}
});
// remove this node from rtree so that its not paired up again
tree = tree.delete(entry.getKey(),nameByBoundingBox.get(entry.getKey()));
}
所以我基本上想将重叠的矩形配对。
我希望,如果我在树中添加了2个矩形,那么“调用”函数的调用次数必须为3。但是我观察到它只被调用了两次。每次g和r都相同时,即永远不会用我添加的2个矩形调用'call'。
这里缺少什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)