का उपयोग कर जियोजसन (या चुनिंदा रूप से डब्लूकेटी/डब्ल्यूकेबी के रूप में) के रूप में प्रस्तुत करें मेरे पास , activerecord-postgis-adapter
और rgeo-geojson
चलने वाले रेल हैं।एमआईएमई-प्रकार
फिलहाल मैं डिफ़ॉल्ट "object.json" URL का उपयोग WKT/WKB प्रारूप के साथ JSON स्ट्रिंग प्राप्त करने के लिए कर सकता हूं। यह इस तरह दिखता है:
{"description":null,"id":1,"position":"POINT (10.0 47.0)"}
लेकिन अब मैं एक कस्टम माइम-प्रकार करना चाहते हैं, तो मैं इस तरह GeoJSON स्वरूप पाने के लिए "object.geojson" कॉल कर सकते हैं:
{"description":null,"id":1,"position":{"type":"Point","coordinates": [10.0, 47.0]}}
एक ही रास्ता मैंने जेएसओएस-एन्कोडर को जियोज़सन में सेट करने के लिए पाया है इसे विश्व स्तर पर 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
पर। !?
संपादित करें:
मेरे वस्तुओं रेल कंसोल में इस तरह दिखेगा:
#<Anchor id: 1, description: nil, position: #<RGeo::Geos::CAPIPointImpl:0x3fc93970aac0 "POINT (10.0 47.0)">>
GeoJSON JSON है और इसके समुचित मीडिया प्रकार है " आवेदन/json। " शायद GeoJSON डेटा के लिए एक पूरी तरह से अलग विचार पर विचार करें? – sgillies
आपके उत्तर के लिए धन्यवाद: लेकिन अभी भी सवाल है: मैं जेएसओएन के साथ जेएसओएन जेडब्ल्यूओएन के बजाय जेकेओएस जेनरेट कर सकता हूं (!!) वैश्विक json_generator को सेट किए बिना? –