Расчет расстояния и дальности в Geokit / Geocoder - PullRequest
2 голосов
/ 05 июля 2011

У меня следующая проблема.

Рассмотрим 2 модели с атрибутами:

Place
- lat
- lng
- range

User
- lat
- lng

Места имеют местоположение и определенный диапазон (представьте, что это район доставки).У пользователя есть собственное местоположение.

Я использую геокодер для геолокации (я мог бы также использовать Geokit).Я могу рассчитать расстояние до объекта (что-то вроде object.distance_to ([lat, lng])

Теперь я хотел бы выбрать все места, диапазоны которых включают мое местоположение. На более высоком уровне: я хотел бызнать, какие места обеспечивают доставку для моего местоположения.

Проще, когда я ищу коллекцию объектов в заданном диапазоне. Однако мне нужно что-то "перевернутое", что-то с другой стороны.

Какой метод / область я должен написать? Может быть, Geocoder / Geokit уже что-то для меня?

1 Ответ

2 голосов
/ 23 ноября 2011

Наконец я ничего не нашел в гемах, но я написал следующий метод

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