2012-11-14 44 views
0

我想查詢表中使用此查詢軌(發現here):我會如何編寫equiv。在軌道中的這個查詢?

Select ID, Postcode, Lat, Lon, 
     acos(sin($lat)*sin(radians(Lat)) + cos($lat)*cos(radians(Lat))*cos(radians(Lon)-$lon))*$R As D 
From MyTable 
Where acos(sin($lat)*sin(radians(Lat)) + cos($lat)*cos(radians(Lat))*cos(radians(Lon)-$lon))*$R < $rad 

(發現位於一個給定的點的一定半徑內的所有點)

回答

1

的答案是使用GeoKit-Rails (或GeoKit-Rails3)。然後你的查詢看起來就像這樣:

Store.find(:all, :origin => @somewhere, :within=>10) 

或Rails3中的版本:

Location.within(5, :origin => @somewhere) 

其中@somewhere是一個點([37.792,-122.393]),郵政編碼,地址等

+0

它說中是未定義的方法。 – xxyyxx

+0

你做了'捆綁安裝'嗎?你爲模型添加了「acts_as_mappable」嗎? –