在Rails3中使用as_json将点自动编码到Geojson [英] Automatically encode points to geojson with as_json in rails3
本文介绍了在Rails3中使用as_json将点自动编码到Geojson的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前正在使用以下代码覆盖as_json以实现此目的:
def as_json(params)
l = {:lat_lng => ::RGeo::GeoJSON.encode(lat_lng)}
self.attributes.merge(l).as_json
end
但是,这并不是最佳选择,因为缺少根(例如对象:{})。有没有一个函数可以很容易地包含它?(我们的很多型号都关联了lat_lng,所以我不想硬编码)。
对于Ruby/Rails初学者的任何提示,我们都将不胜感激
推荐答案
对于后人,我在收到几个关于它的报告后,在版本0.3.4的"rgeo-active verecord"gem中修复了这个问题。默认情况下,它在WKT中呈现空间列。要将其切换到GeoJSON,请设置:
RGeo::ActiveRecord::GeometryMixin.set_json_generator(:geojson)
NielsV的答案有时有效,但不是每次都有效。具体地说,它将适用于地理工厂(即PostGIS中的几何柱),但不适用于GEOS支持的工厂。
这篇关于在Rails3中使用as_json将点自动编码到Geojson的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文