Хранение и запрос данных о местоположении (geo / gis / etc) в Rails - PullRequest
2 голосов
/ 26 января 2011

Мне нужно записывать и отслеживать местоположение некоторых объектов в приложении Rails. Проще говоря, iPhone опубликует свое местоположение (широта / долгота), а Rails заархивирует его. Тогда при запросе Rails нужно будет вернуть ресурсы по близости к какому-то произвольному месту. Первоначально расчеты будут минимальными (расстояние от точки).

Какой самый последний, лучший и простой способ справиться с этим? Опции, которые я знаю ...

  1. Я мог бы перебор, захватив его широта / долгота и близость Сам расчеты
  2. Вот это Geokit драгоценный камень / плагин, хотя он не появляется быть обновленным с 2009 года (!?!) и не проверено на Ruby 1.9.2.
  3. Есть PostGIS в качестве бэкэнда. расширение базы данных, хотя интересно, какое значение это добавляет, и если оно заслуживает дополнительных затрат, оно может потребоваться?
  4. Другие

Ответы [ 3 ]

1 голос
/ 28 января 2011

Я голосую за # 2, GeoKit: Поскольку это самый простой и не требует развертывания дополнительного программного обеспечения / поисковой системы / базы данных.

Rails Geokit работает в рельсах 3 с ruby ​​1.9.2 Вам просто нужноследуйте инструкциям по этому вопросу: https://github.com/andre/geokit-rails/issues#issue/15

Делайте то, что предлагают tute и brianlong .

Кроме того, я представил исправление, чтобы сделатьsort_by_distance работает для: через ассоциации:

https://github.com/andre/geokit-rails/issues#issue/26

0 голосов
/ 26 января 2011

Мышление Сфинкс может индексировать по широте и долготе и возвращать результаты в радиусе поиска .

0 голосов
/ 26 января 2011

Возможно ли использовать MongoDB? Он поддерживает ГИС-материалы из коробки - Mongoid позволяет запрашивать его как

Address.near(:position => [ 37.7, -122.4, 10 ])

Подробнее на сайте Mongoid здесь

...