2

我有以下问题。

考虑 2 个具有属性的模型:

Place
- lat
- lng
- range

User
- lat
- lng

地点有位置和范围定义(将其视为运输区域)。用户有自己的位置。

我使用 Geocoder 进行地理定位(我也可以使用 Geokit)。我可以计算到对象的距离(类似于 object.distance_to([lat,lng])

现在,我想选择范围包括我的位置的所有地点。在更高级别:我想知道,哪些地方为我的位置提供运输服务。

当我正在寻找给定范围内的对象集合时,它会更容易。但是我需要一些“颠倒”的东西,来自另一边的东西。

我应该写什么方法/范围?也许 Geocoder/Geokit 已经为我准备好了一些东西?

4

1 回答 1

2

最后我没有在 gems 中找到任何东西,但我写了以下方法

class User < ActiveRecord::Base
  #...  
  def in_reach?(place)
    place.distance_to([lat,lng]) <= place.range
  end 
end
于 2011-11-23T11:13:33.777 回答