Ho Rails con , activerecord-postgis-adapter
e rgeo-geojson
in esecuzione.Render come GeoJSON (o selettivamente come WKT/WKB) utilizzando i tipi MIME
Al momento posso utilizzare gli URL "object.json" predefiniti per ottenere una stringa JSON con il formato WKT/WKB. Ecco come si presenta:
{"description":null,"id":1,"position":"POINT (10.0 47.0)"}
Ma ora voglio avere un costume MIME-Type, così posso chiamare "object.geojson" per ottenere formato GeoJSON come questo:
{"description":null,"id":1,"position":{"type":"Point","coordinates": [10.0, 47.0]}}
L'unico modo Ho trovato che impostare il codificatore JSON su GeoJSON era di impostarlo globalmente usando RGeo::ActiveRecord::GeometryMixin.set_json_generator(:geojson)
e RGeo::ActiveRecord::GeometryMixin.set_json_generator(:wkt)
. Ma voglio solo impostarlo localmente, è possibile?
ho già aggiunto Mime::Type.register "application/json", :geojson, %w(text/x-json application/jsonrequest)
-mime_types.rb
e funziona bene: posso utilizzare questo codice in mio controller:
respond_to do |format|
format.json { render json: @object }
format.geojson { render text: "test" }
end
spero che qualcuno mi può dire come rendere un oggetto specifico per GeoJSON senza impostare il mondiale Renderer JSON per :geojson
. !?
EDIT:
miei oggetti simile a questa in Rails Console:
#<Anchor id: 1, description: nil, position: #<RGeo::Geos::CAPIPointImpl:0x3fc93970aac0 "POINT (10.0 47.0)">>
GeoJSON è JSON e il suo tipo di supporto corretto è " application/json ". Forse consideri una visione completamente diversa per i dati di GeoJSON? – sgillies
Grazie per la tua risposta: Ma c'è ancora la domanda: come posso generare JSON con GeoJSON invece di WKT senza (!!) impostando il json_generator globale? –