Rails с PostGIS

Прежде всего, я использую Rails3 с Ruby 1.9.2.

У меня проблема с использованием PostgreSQL с PostGIS. Я пробовал два камня:

Проблема в том, что первый from nofxx работает хорошо, но он не предоставляет задач с граблями, поэтому postgis.sql и Space_ref_sys.sql вставляются в базу данных. Мне это нужно, потому что использовать тесты удобно и необходимо (автоматически создать базу данных, вставить postgis sql и выполнить миграции при запуске «rake test»). Странно то, что в README на github автор что-то пишет о хелперах PostGIS и граблях. Но они не реализованы (или я слепой).

Второй из перечисленных выше драгоценных камней отлично обеспечивает эту функциональность для рейка! Но я столкнулся с проблемой, которую не могу решить. Я следовал инструкциям в README, но каждый раз, когда я пытаюсь установить позицию в пространственном столбце, я получаю следующий результат:

ruby-1.9.2-p136 :010 > v = Venue.new :location => "POINT(102.0, 47.2)"
=> #
ruby-1.9.2-p136 :011 > v.location
=> nil 

Как видите, я установил местоположение с помощью WKT (хорошо известный текст), но это всегда ноль. Я тоже пытался сохранить его в базе данных, но он тоже ноль. Я понял, что когда я пытаюсь использовать объекты, предоставленные RGeo

RGeo::Geos.factory.point(-122, 47)

, он говорит, что фабрика равна нулю. Итак, должна быть проблема с созданием фабрики, предоставленной RGeo. Как упоминалось в README адаптера activerecord-postgis-adapter, я использовал следующую строку в моей модели Venue для обеспечения этой поддержки:

self.rgeo_factory_generator = RGeo::Geos.factory_generator

, но это не работает.

Итак, чтобы найти решение, есть два способа: Нахожу способ перенести задачи с граблями в georuby gem nofxx или решить проблему с фабрикой activerecord-postgis-adapter.

Надеюсь, кто-то может мне помочь, thx!

10
задан tee 27 November 2014 в 02:18
поделиться