Ruby中的多边形点交点

时间:2013-11-19 17:40:20

标签: ruby tree indexing r-tree

如何快速找到一组包含给定点的多边形?

我在POSTGis数据库中有一组多边形。我在ruby端使用RGeo来操作,保存和从数据库中提取信息。

我从外部机器接收一个点(x和y坐标),需要知道这个点位于哪个多边形中。我无法使用数据库,因为出于性能原因,我需要在内存中完成此操作。

我相信我可能需要一个r-tree,但我并不想写一个。

RGeo提供了contains?方法,我可以使用它来确保点在感兴趣的多边形内,但我需要知道要检查哪个多边形。我有大约1,000个多边形的数量,并且进行线性搜索对于我的需求来说不够时间。

1 个答案:

答案 0 :(得分:2)

可以this帮忙吗?否则,有this

似乎neartree是一个更好的搜索w.r.t.红宝石。

希望这有帮助!

编辑:如果你需要一个rtree的通用实现,也许boost(c ++)库可以帮助它有here的绑定。 具有应该帮助您的用例的方法的绑定:

intersects?
intersects_each?
intersects_rect?
intersects_rect_each?