【发布时间】:2012-02-18 18:52:37
【问题描述】:
我想要一些关于构建 sql 查询以在带有 activerecord-postgis-adapter 的 Rails 中使用的帮助。我已经做了很多阅读,但现在有点卡住了,任何帮助将不胜感激。
我有两个模型事件和区域:
事件有一个点类型的“几何”列
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}
我可以在谷歌地图上创建和绘制事件和区域,并通过单击地图并保存到数据库来创建区域。
我希望能够执行以下 2 个查询:
- @area.events - 显示区域内的所有事件
- @event.areas - 显示单个事件所在的所有区域
我知道我在这里可能会问一些问题,但我们将不胜感激任何帮助
非常感谢
【问题讨论】:
-
只是为了澄清...您是在寻找执行此操作的 SQL 脚本还是 ruby 答案?用于此的 Postgres SQL 脚本相对简单(使用 ST_contains),如果您提供这两个表的架构以及它们之间的关系,我可以为您提供完整的脚本。
-
您好第十二... 我想在 Rails 中实现它,但不知道该怎么做,我想我想要一个 Areas 和 Events AreasEvents 之间的连接表,例如,因为我希望能够查看给定区域中的事件,并给定事件查看它所在的所有区域,但我看不到如何使用标准 Rails 关联来实现这一点。我需要快速解决方案,因为会有大量事件,所以我认为我需要使用 ST_contains。我还没有实现表之间的任何关系。剂量这个帮助?
标签: sql ruby-on-rails ruby postgis