我有一个边界框列表,我想知道如何计算哪些是冗余/重复的。
原因是我有200万个这样的东西,我发送给一个api,我想知道哪些是重叠的,所以我可以减少它们,这样每个盒子只覆盖一个独特的土地面积,所以没有两个包围盒覆盖同一块地理空间。
我该如何计算才能使这些边界框各自覆盖自己独特的地理空间?
我用C++ BWT编写这个程序。

最佳答案

我认为这个任务比你想的要复杂。
您将不得不拆分现有的框,直到不存在重叠,然后移除完全包含在另一个框中的框。
与其给你一个解决方案,我建议你检查一下你是否可以接受:
1)将完全装在另一个箱子里的箱子移走。
2)保留(部分-)重叠框。
对于200万,您需要一个空间索引(四叉树),以获得一个框附近所有框的列表。
如果你必须避免任何重叠,那么你必须继续思考结果应该是什么?
A)重叠矩形的并集,其前面不再是矩形,而是多边形。
或者B)结果应该是矩形。

10-06 12:55