2
我正在使用PostgreSQL + PostGIS來處理空間數據,並且我還使用這個gem activerecord-postgis-adapter來保持編寫代碼的容易性。我有這個模型Ruby on Rails + PostGIS模型自定義初始化和自定義JSON輸出
class Device < ActiveRecord::Base
attr_accessible :location
self.rgeo_factory_generator = RGeo::Geos.factory_generator
end
其中:位置應該是PostGIS POINT。創建設備的新實例(在控制器的製作方法,例如),我可以這樣做:
params = { location: "POINT (-26 -43)" }
@device = Device.new(params)
其中「POINT(-26 -43)」是緯度-26和經度-43中的點WKT(知名文本)格式。我想能夠隱藏此實現細節,使人們有可能寫:
params = { latitude: -26, longitude: -43 }
@device = Device.new(params)
也許我可以在我的設備類中重寫after_initialize方法實現這一目標。我還可以做些什麼?
還有一件事..我也需要用JSON輸出這個對象。現在,我得到
{ "location": "POINT (-26 -43)" }
不過,我想有一些像
{ "location": { "latitude": -26, "longitude": -43 } }
快速N」骯髒的解決方案,這將是覆蓋as_json方法。還有其他建議嗎?
謝謝。
座標軸順序爲POINT(X Y),因此POINT(經度緯度)。你需要翻轉這些。 –
@MikeToews好吧,我知道,但這不是問題。 – xissburg