如何解决RTree搜索功能未调用回调函数的预期次数
我正在使用开源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 举报,一经查实,本站将立刻删除。