Mam uruchamiane Railsy z , activerecord-postgis-adapter
i rgeo-geojson
.Renderuj jako GeoJSON (lub wybiórczo jako WKT/WKB) przy użyciu typów MIME
W tej chwili mogę użyć domyślnych adresów URL "object.json", aby uzyskać łańcuch JSON z formatem WKT/WKB. Wygląda to tak:
{"description":null,"id":1,"position":"POINT (10.0 47.0)"}
Ale teraz chcę mieć niestandardowego typu MIME, więc mogę nazwać „object.geojson”, aby uzyskać formatu GeoJSON tak:
{"description":null,"id":1,"position":{"type":"Point","coordinates": [10.0, 47.0]}}
Jedynym sposobem Zauważyłem, że ustawiłem koder JSON na GeoJSON, aby ustawić go globalnie przy użyciu RGeo::ActiveRecord::GeometryMixin.set_json_generator(:geojson)
i RGeo::ActiveRecord::GeometryMixin.set_json_generator(:wkt)
. Ale chcę tylko ustawić to lokalnie, czy to możliwe?
ja już dodane Mime::Type.register "application/json", :geojson, %w(text/x-json application/jsonrequest)
do mime_types.rb
i działa prawidłowo: Mogę wykorzystać ten kod w moim kontrolera:
respond_to do |format|
format.json { render json: @object }
format.geojson { render text: "test" }
end
Mam nadzieję, że ktoś może mi powiedzieć jak to czynią niektóre konkretnego obiektu do GeoJSON bez ustawienia globalne Rendering JSON do :geojson
. !?
EDIT:
moich przedmiotów wyglądać w Rails konsoli:
#<Anchor id: 1, description: nil, position: #<RGeo::Geos::CAPIPointImpl:0x3fc93970aac0 "POINT (10.0 47.0)">>
GeoJSON jest JSON i jego właściwa typ nośnika jest " application/json. " Być może rozważyć zupełnie inny widok danych GeoJSON? – sgillies
Dziękuję za odpowiedź: Ale wciąż pozostaje pytanie: Jak wygenerować JSON z GeoJSON zamiast WKT bez (!!) ustawienia globalnego json_generator? –