當軌道控制檯下面的代碼打印到屏幕GeoJSON格式導出座標數組作爲我期待它:創建ActiveRecord的對象的數組
Bg.
select("bg_id, ST_AsGeoJSON(the_geom) as my_geo").
where("ST_Contains(ST_MakeEnvelope(-xxx,xxx,-xxx,xxx, 4269), bg.the_geom)").
map(&:my_geo)
的select
部分然而不只是要求json。如果我也想要數組中的bg_id,該怎麼辦?
最後我想要的是與bg_id的作爲鍵和GeoJSON的對象爲值的哈希值。你在這裏提供的是創建一個哈希數組。我使用'.reduce Hash.new,:merge'來完全按照我的意願製作單個哈希。所以我想我的問題得到解答,除非你能想到更好的方法。謝謝! – 2013-05-03 19:22:48
此外,雖然這個工程,我不知道我明白爲什麼。這看起來像是在數組的每個項目上調用稱爲「id」和「my_geo」的方法......是否正確? – 2013-05-03 19:51:26
啊,在這種情況下,減少是要走的路。是的,這是正確的,它是調用方法。 '(&:my_geo)'是'{| obj |的縮寫obj.my_geo}' – 2013-05-03 21:56:36