我需要在我的 Rails 应用程序中知道一个点是否在多边形中,以便我想使用 rgeo gem。
要安装这个 geme,我按照rgeo git上的说明进行操作
然后我确定 GEOS 和 Proj4 已正确安装。
我还添加了这个 gem 'ffi-geos',没有特别的原因,只遵循 rgeo doc
最后我在 Rails 控制台上进行了测试以检查是否正常工作
- poly_text = "POLYGON ..." (很多点,我知道第一个点和最后一个点是相同的,否则我认为这不会起作用,因为需要是一个封闭的多边形)
- factory = RGeo::Cartesian::Factory (我正在使用笛卡尔工厂,因为根据我的调查,如果我使用球形工厂,这将不起作用)
- poly = factory.new().parse_wkt(poly_text)
- point1 = factory.new().parse_wkt("POINT (0 0)") (这个点不属于多边形)
- poly.within?(point1)
- 结果:RGeo::Error::UnsupportedOperation: Method Geometry#contains? 没有定义的。来自 (irb):26
更多信息:rails 版本 5.1.2 ide c9 os ubuntu
如果有人有解决方案,在此先感谢,我也愿意使用另一个 gem,或者其他什么,我的目标是解决我的点/多边形问题。