我在Ubuntu上使用Rails 4.2和PostGIS,rgeo以及activerecord-postgis-adapter gem。我还安装了以下库:libgeos ++ - dev libgeos-3.4.2 libgeos-c1 libgeos-dbg libgeos-dev libgeos-doc libgeos-ruby1.8 ruby-geos。我调用contains时会引发RGeo :: Error :: UnsupportedOperation?在RGeo :: Geographic :: SphericalMultiPolygonImpl上。如何使我的RGeo :: Geographic :: SphericalMultiPolygonImpl可以使用Feature :: Geometry方法?
答案 0 :(得分:0)
您可能需要将多个多边形分解为多个部分并对每个多边形运行“包含”调用。我猜测#contains方法一次必须在一个多边形上运行。以下是该操作的样子:
responses = {}
n = this_shape.num_geometries
(0..n).to_a.each do |i|
responses[i] = this_shape.geometry_n(i).contains?(other_shape)
end
或者,您可以将这些多边形分解为单个多边形,然后在阵列上运行循环...