2011-07-05 2 views
2

J'ai le numéro suivant.Calcul de la distance et de l'étendue dans Geokit/Geocoder

Considérons 2 modèles avec des attributs:

Place 
- lat 
- lng 
- range 

User 
- lat 
- lng 

Les lieux ont lieu et une plage définie (pensez comme zone d'expédition). L'utilisateur a son propre emplacement.

J'utilise Geocoder pour la géolocalisation (je pourrais également utiliser Geokit). Je peux calculer la distance à l'objet (quelque chose comme object.distance_to ([lat, lng])

Maintenant, je voudrais sélectionner tous les endroits qui comprennent mon emplacement. qui place fournir une livraison pour mon emplacement.

Il est plus facile quand je suis à la recherche de collection d'objets dans plage donnée. Cependant, je besoin de quelque chose « inversé », quelque chose d'un autre côté.

Quelle méthode/champ devrais-je Peut-être que Geocoder/Geokit a déjà quelque chose pour moi?

Répondre

2

Enfin je n'ai rien trouvé dans les gemmes mais j'ai écrit la méthode suivante

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