RGeo на Ruby под Windows: как включить поддержку GEOS?

Я пытаюсь выполнить некоторые пространственные операции в Ruby с помощью драгоценного камня RGeo. К сожалению, для многих операций требуется библиотека GEOS, и я не могу найти документацию, показывающую, как интегрировать ее в Windows (я использую 64-разрядную версию Windows 7).

Я попытался загрузить и установить двоичные файлы GEOS для Windows с сайта http://trac.osgeo.org/osgeo4w/ и переустановив гем RGeo через gem install rgeo -- --with-geos-dir="C:\OSGeo4W64\bin (‹‹ в этом каталоге есть файл geos_c.dll).

Тем не менее, использование RGeo::Geos.supported? возвращает false.

Кто-нибудь знает, как это решить?


person Dirk    schedule 10.03.2014    source источник
comment
Вы решили это? Я сталкиваюсь с той же проблемой.   -  person nathanvda    schedule 22.12.2014
comment
Насколько я помню да, но это было некоторое время назад и я не помню все шаги наизусть. Я думаю, что у меня есть некоторые заметки, как это сделать где-то на моем рабочем месте, но я не могу получить к ним доступ до начала января. Я заберу это тогда.   -  person Dirk    schedule 24.12.2014
comment
Я был бы признателен, что. У меня есть обходной путь: используйте postgis для преобразования координат в окнах, но это дополнительный запрос, которого я хотел бы избежать.   -  person nathanvda    schedule 24.12.2014
comment
С Новым Годом! Насколько я мог узнать, я не мог заставить его работать тогда. Однако я думаю, что это сработало в Windows, когда я использовал этот гем: github.com/dark-panda/ ffi-geos Вы уже пробовали? Чтобы использовать этот материал ffi после установки (через менеджер драгоценных камней), я сделал это: #Create new factory for direct GEOS access my_factory = RGeo::Geos.factory(:native_interface => :ffi) puts RGeo::Geos.supported? # should return true   -  person Dirk    schedule 05.01.2015


Ответы (1)


Для тех, кто еще хочет это сделать - вот несколько советов о том, как я заставил это работать.

  • установите двоичные файлы GEOS для Windows, перейдя по ссылке с http://trac.osgeo.org/geos/ ( У меня 32-битная версия Ruby, поэтому я выбрал 32-битную версию)
  • теперь вы сможете найти файл geos_c.dll в C:\OSGeo4W\bin
  • установите для переменной среды Windows ENV['GEOS_LIBRARY_PATH'] значение C:\OSGeo4W\bin
  • проверьте на этом этапе, чтобы убедиться, что переменная ENV существует - возможно, перезагрузите компьютер!
  • в вашем Gemfile добавьте gem 'ffi-geos' и gem 'rgeo' и установите пакет
  • в вашем файле Ruby не забудьте require 'ffi-geos' и require 'rgeo' (именно в таком порядке)
  • использовать factory = RGeo::Geos.factory(:native_interface => :ffi) - не RGeo::Cartesian.factory
  • проверьте RGeo::Geos.supported? как сказал Дирк
person PeteW    schedule 04.11.2015
comment
Если это сработало для вас, вы должны отметить это как правильный ответ - person boulder_ruby; 21.01.2016