2012-11-14 43 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”吗? –