Мне нужна помощь в построении sql-запросов для использования в рельсах с помощью activerecord-postgis-adapter. Я занимаюсь чтением, но теперь я немного застрял, любая помощь будет высоко оценена.Ruby Rails Postgis - Поиск всех точек в многоугольнике
У меня есть две модели События и Areas:
события столбец «геометрия», которая имеет тип точки
class Event < ActiveRecord::Base
self.rgeo_factory_generator = RGeo::Geos.factory_generator
end
t.spatial "geometry", :limit => {:srid=>4326, :type=>"polygon", :geographic=>true}
Области имеют столбец «геометрии», которая имеет тип многоугольник
class Area < ActiveRecord::Base
self.rgeo_factory_generator = RGeo::Geos.factory_generator
end
t.spatial "geometry", :limit => {:srid=>4326, :type=>"point", :geographic=>true}
Я могу создавать и изображать как события и области на карте Google, так и создавать области, нажимая на карту и сохраняя в базе данных.
Я хочу быть в состоянии сделать последующие 2 запросы:
- @ area.events - показать все события в области
- @ event.areas - показать все области одно событие является в
Я знаю, что я мог бы спросить немного много здесь, но любая помощь была бы оценена
Большое спасибо
Просто чтобы уточнить ... вы ищете SQL-скрипт для этого или рубинового ответа? Сценарий SQL Postgres для этого относительно прямолинейный (используйте ST_contains), и я могу дать вам полный скрипт, если вы предоставите схему для этих двух таблиц и как они связаны. – Twelfth
Привет, Двенадцатый ... Я хотел бы реализовать его в рельсах, и я не уверен, как это сделать, я думаю, мне бы хотелось, чтобы таблица соединений между областями и Events AreasEvents, например, я хочу иметь возможность просматривать события которые находятся в заданной области, и, учитывая событие, видят все области, в которых он находится, но я не вижу, как это реализовать со стандартными ассоциациями рельсов. Мне нужно, чтобы решение было быстрым, так как будет большое количество событий, поэтому я думаю, что мне нужно использовать ST_contains. Я еще не установил никаких связей между таблицами. Доставить эту помощь? – nodrog