1

我将rgeogem 与activerecord-postgis-adapter用于某些列,并且我希望更改现有列的选项

请允许我以这种方式显示它,在 schema.rb 文件中,目前这是记录该列的行

t.spatial  "shape", :limit => {:srid=>0, :type=>"multi_polygon"}

所以这个专栏有一些 postgis 认可的特殊元标记选项。

我想将这些:shape列的默认 srid 设置04326。我想通过迁移来做到这一点,或者甚至更好,以便能够单独设置这些点的值。目前,我还没有在 RGeo 文档中找到 :srid 标签的 setter 方法,只有一个阅读器。所以我认为我最好的选择是迁移。

我试过这个:

change_column :parcels, :shape, :srid, 4326

但是得到了这个错误:

==  AddSridOptToShapes: migrating =============================================
-- change_column(:zones, :shape, :srid, 4326)
rake aborted!
An error has occurred, this and all later migrations canceled:

can't convert Symbol into Integer

我知道可以通过执行一串 SQL 来解决这个问题,但我希望活动记录也能提供一种方法

4

1 回答 1

0

我通过简单地创建一个新列解决了这个问题,在我的情况下,对于我需要与特定 shapefile 记录一起使用的每个投影

:proj_shape_0
:proj_shape_3361
:proj_shape_2264

等等,其中数字是 srid 代码

于 2013-09-16T04:22:42.210 回答