Ich habe Rails mit , activerecord-postgis-adapter
und rgeo-geojson
läuft.Rendern als GeoJSON (oder wahlweise als WKT/WKB) mit MIME-Typen
Im Moment kann ich Standard-URLs "object.json" verwenden, um eine JSON-Zeichenfolge mit WKT/WKB-Format zu erhalten. Es sieht wie folgt aus:
{"description":null,"id":1,"position":"POINT (10.0 47.0)"}
Aber jetzt möchte ich einen benutzerdefinierten MIME-Typ haben, so kann ich „object.geojson“ nennen GeoJSON Format wie folgt zu erhalten:
{"description":null,"id":1,"position":{"type":"Point","coordinates": [10.0, 47.0]}}
Der einzige Weg, Ich stellte fest, dass der JSON-Encoder auf GeoJSON gesetzt wurde, um ihn global unter Verwendung von RGeo::ActiveRecord::GeometryMixin.set_json_generator(:geojson)
und RGeo::ActiveRecord::GeometryMixin.set_json_generator(:wkt)
zu setzen. Aber ich möchte es nur lokal setzen, ist das möglich?
Ich habe bereits Mime::Type.register "application/json", :geojson, %w(text/x-json application/jsonrequest)
-mime_types.rb
und es funktioniert gut: Ich habe diesen Code in meinem Controller verwenden kann:
respond_to do |format|
format.json { render json: @object }
format.geojson { render text: "test" }
end
Ich hoffe jemand kann mir sagen, wie man etwas bestimmtes Objekt GeoJSON zu machen, ohne die globale Einstellung JSON-Renderer zu :geojson
. !?
EDIT:
Meine Objekte wie folgt aussehen in Rails-Konsole:
#<Anchor id: 1, description: nil, position: #<RGeo::Geos::CAPIPointImpl:0x3fc93970aac0 "POINT (10.0 47.0)">>
GeoJSON ist JSON und seine richtige Medientyp " Anwendung/JSON. " Vielleicht eine völlig andere Sicht auf die GeoJSON-Daten? – sgillies
Danke für deine Antwort: Aber es stellt sich immer noch die Frage: Wie kann ich JSON mit GeoJSON statt WKT generieren, ohne (!!) den globalen json_generator zu setzen? –