1

我想保存一个多边形。

这是 Geojson在此处输入链接描述

str1 = "geojson....."
geom = RGeo::GeoJSON.decode(str1, json_parser: :json)
l = Limit.new
l.multipoligono = geom
l.save


NoMethodError: undefined methodfactory' for #RGeo::GeoJSON::FeatureCollection:0x3fc7febb7424`

这是我的 rgeo.rb

RGeo::ActiveRecord::SpatialFactoryStore.instance.tap do |config|
config.default = RGeo::Geos.factory_generator
config.register(RGeo::Geographic.spherical_factory(srid: 4326), geo_type: "point")
config.register(RGeo::Geographic.spherical_factory(srid: 4326), geo_type: "multi_polygon")
config.register(RGeo::Geographic.spherical_factory(srid: 4326), geo_type: "geometry_collection")

end
4

1 回答 1

2

有 110 颗星,我认为这就是他们在 ruby​​ 中的做法

hash = RGeo::GeoJSON.encode(feature)
hash.to_json == str2      # => true

也就是说,我不会那样做。我也不会使用 Ruby。查看 PostGIS 的ST_AsGeoJSON. 它返回geojson的特征部分。也就是说,将 RGeo 排除在等式之外。

于 2017-07-07T18:25:37.887 回答