从一个名为 Field 的模型开始,该模型包含一个名为“polygon”(笛卡尔坐标作为数组)的列,我想用 RGeo 计算公顷的面积:
class Field < ApplicationRecord
def area
factory = RGeo::Cartesian.factory(srid: 4326)
polygon = factory.polygon(self.polygon)
polygon.area
end
end
不幸的是,我总是收到这个错误信息:
NoMethodError (undefined method `factory' for #<Array:0x0000aaaac742b9a0>)
我正在使用 rgeo 3.0.0
听起来你正在向工厂传递一个点数组(它们本身是整数数组?),但是文档
rgeo
指定了准备参数的不同方式#polygon
:如果
self.polygon
确实返回一个整数数组的数组,那么您可以使用类似