我有一个遗留区域数据,其中一些记录在其中Polygon
,一些MultiPolygon
以 JSON 格式存储在 noSQL DB 中。我需要将该数据迁移到area
具有 ST_MultiPolygon 类型的列的 PostGIS 数据库。
所以,我的问题是:如何将Polygon
区域转换为MultiPolygon
使用 RGeo gem 或类似的东西?
现在,我正在像这样转换 MultiPolygons:
multipolygon = RGeo::GeoJSON.decode(location.area)
PostgisLocation.create(area: multipolygon)
但是当 area 不是多边形,而是多边形时,DB 会抛出异常:PG::InternalError: ERROR: parse error - invalid geometry
多边形的文本表示示例:
POLYGON ((-6.00606009808446 54.5901007810674, -6.01003269079491 54.5928954129105, -5.97732358111394 54.5870863982436, -6.00606009808446 54.5901007810674))
我想到的最愚蠢的事情是POLYGON
用MULTIPOLYGON
单词替换,并添加额外的()
括号。但是,我相信应该有更好的方法来使用 RGeo 库进行转换。我花了一些时间阅读 RGeo 的文档,但没有找到任何可以帮助我的东西。