我使用了Rails框架,其中包含PostGIS
, activerecord-postgis-adapter
和rgeo-geojson
。
目前我可以使用默认的“object.json” URL获取一个包含WKT/WKB格式的JSON字符串。它看起来像这样:
{"description":null,"id":1,"position":"POINT (10.0 47.0)"}
但是现在我想要一个自定义的MIME类型,这样我就可以调用"object.geojson"以获取GeoJSON格式,如下所示:
{"description":null,"id":1,"position":{"type":"Point","coordinates": [10.0, 47.0]}}
我发现将JSON编码器设置为GeoJSON的唯一方法是全局设置,使用
RGeo::ActiveRecord::GeometryMixin.set_json_generator(:geojson)
和RGeo::ActiveRecord::GeometryMixin.set_json_generator(:wkt)
。但我只想在本地设置它,这可行吗?我已经在
mime_types.rb
中添加了Mime::Type.register "application/json", :geojson, %w( text/x-json application/jsonrequest )
,它运行良好:我可以在控制器中使用此代码:respond_to do |format|
format.json { render json: @object }
format.geojson { render text: "test" }
end
我希望有人能告诉我如何将某些特定对象呈现为GeoJSON,而不必设置全局JSON渲染器为
:geojson
。 !?
编辑:
在Rails Console中,我的对象看起来像这样:
#<Anchor id: 1, description: nil, position: #<RGeo::Geos::CAPIPointImpl:0x3fc93970aac0 "POINT (10.0 47.0)">>