2011-07-05 28 views
2

次の問題があります。Geokit/Geocoderでの距離と距離の計算

は属性を持つ2つのモデルを考えてみましょう:

Place 
- lat 
- lng 
- range 

User 
- lat 
- lng 

場所が場所と定義されているいくつかの範囲を(出荷の面積としてそれについて考える)があります。ユーザーは自分の場所を持っています。

GeocoderをGeolocationに使用しています(Geokitも使用できます)。私はオブジェクトまでの距離を計算することができます(object.distance_to([lat、lng])のようなものです

私の範囲を含むすべての場所を選択したいと思います。私はその場所で私の場所のための船積みを提供しています。

私は与えられた範囲内のオブジェクトのコレクションを探していたときにそれは簡単だ。しかし、私が何かを必要とする、他の側から何かを「逆転」。

何方法/スコープべき?Geocoder/Geokitは既に私のために何かを持っていますか?

答えて

2

最後に私は宝石に何も見つかりませんでしたが、以下の方法

class User < ActiveRecord::Base 
    #... 
    def in_reach?(place) 
    place.distance_to([lat,lng]) <= place.range 
    end 
end