使用Alex Reisner的Ruby Geocoder,我有一个模特" Spot"使用此宝石进行地理编码
如果我选择第一个点和对象:
s = Spot.first
然后尝试找到半径10英里范围内的所有景点(让我们说它们应该有12个),然后我希望 Spot.near(s,10)到返回包含12个点的活动记录对象。相反,它每次只返回这样的东西:
Spot.near(s1,10)
=> {:select=>"spots.*, AS distance, CAST(DEGREES(ATAN2( RADIANS(spots.longitude - -6.88671972656243), RADIANS(spots.latitude - 55.1729431175342))) + 360 AS decimal) % 360 AS bearing", :conditions=>["spots.latitude BETWEEN 55.028211334423354 AND 55.31767490064505 AND spots.longitude BETWEEN -7.140145500612388 AND -6.633293952512472 AND <= ?", 10], :order=>"distance ASC"}
基本上它会返回一些SQL,但没有结果。
这里出了什么问题?即使我尝试了更广泛的东西,比如:
Spot.near([40,0],10000)
我基本上没有得到任何结果......
修改
我可以使用这个(不是很漂亮)添加来执行查询...
q = Spot.near(s1,10)
spots = Spot.select(q[:select]).where(q[:conditions]).order(q[:order])