如何在 rails 视图中编辑 GeoJSON 数据?
How to edit GeoJSON data in rails view?
我希望能够在编辑页面中将 GeoJSON 数据编辑为文本。我使用 Rails,带有 activerecord-postgis-adapter 的 PostgreSQL。对于编码数据,我使用 rgeo-geojson。
我的显示视图工作正常,我编码:
<%= RGeo::GeoJSON.encode(@field.shape, json_parser: :json) %>
但是如何升级我的编辑视图,以便我可以编辑 GeoJSON 格式的数据并保存它:
<%= form_for :field, url: field_path(@field), method: :patch do |f| %>
...
<p>
<%= f.label :shape %><br>
<%= f.text_area :shape %>
</p>
...
<% end %>
抱歉,如果问题看起来很乱
您可以向 Field
模型添加一个虚拟属性,它将 postgis 数据库列转换为 GeoJSON 并返回:
class Field < ActiveRecord::Base
def shape_text
RGeo::GeoJSON.encode(shape).to_json
end
def shape_text=(text)
self.shape = RGeo::GeoJSON.decode(text, json_parser: :json)
end
end
<%= form_for :field, url: field_path(@field), method: :patch do |f| %>
...
<p>
<%= f.label :shape_text %><br>
<%= f.text_area :shape_text %>
</p>
...
<% end %>
我希望能够在编辑页面中将 GeoJSON 数据编辑为文本。我使用 Rails,带有 activerecord-postgis-adapter 的 PostgreSQL。对于编码数据,我使用 rgeo-geojson。
我的显示视图工作正常,我编码:
<%= RGeo::GeoJSON.encode(@field.shape, json_parser: :json) %>
但是如何升级我的编辑视图,以便我可以编辑 GeoJSON 格式的数据并保存它:
<%= form_for :field, url: field_path(@field), method: :patch do |f| %>
...
<p>
<%= f.label :shape %><br>
<%= f.text_area :shape %>
</p>
...
<% end %>
抱歉,如果问题看起来很乱
您可以向 Field
模型添加一个虚拟属性,它将 postgis 数据库列转换为 GeoJSON 并返回:
class Field < ActiveRecord::Base
def shape_text
RGeo::GeoJSON.encode(shape).to_json
end
def shape_text=(text)
self.shape = RGeo::GeoJSON.decode(text, json_parser: :json)
end
end
<%= form_for :field, url: field_path(@field), method: :patch do |f| %>
...
<p>
<%= f.label :shape_text %><br>
<%= f.text_area :shape_text %>
</p>
...
<% end %>