【问题标题】:How to detect the area of a given place in a map in c++?如何在c ++中检测地图中给定地点的区域?
【发布时间】:2017-04-03 11:14:02
【问题描述】:

我正在开发一个项目,我需要检测给定区域是否被某个地方覆盖。例如:

假设该图像是我的地图,并且有 2 个地方具有给定区域,一个具有黄色,另一个具有绿色,所以如果我问我的应用程序:“哪些地方覆盖从 1 到 3 的区域以及从A到F?”它应该告诉我这两个地方,等等。

我正在考虑使用矩阵,但我需要加载 5 张地图,每张都不同,例如,第二张地图从 H 开始,以 M 结束,从 10 开始,以 30 结束。所以我不是确定还可以使用什么,有什么想法吗?

【问题讨论】:

    标签: c++ maps area


    【解决方案1】:

    通常,查找与其他区域重叠或相交的二维区域是称为 R-Tree 的数据结构的工作。地点被输入到 R-Tree 中。然后查询 rtree 以查看查询区域命中了哪些。您可以使用 C++ R-Tree 库并将这些位置放入内存 R-Tree 中,或者您可以将您的位置放入支持 R-Tree 的数据库中,例如 sqite。您可以将这些地点保存到数据库中,然后通过查询数据库将它们带入内存。 Sqlite 是一个进程内数据库。您无需为此设置单独的服务器。

    【讨论】:

      猜你喜欢
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多