首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostGIS:将文字WKT/WKB/WKB十六进制转换为多边形

PostGIS:将文字WKT/WKB/WKB十六进制转换为多边形
EN

Stack Overflow用户
提问于 2017-04-23 04:59:03
回答 1查看 1.8K关注 0票数 1

我正在使用Python (GeoPandas,SQLAlchemy,GeoAlchemy2)将多边形形状导入到PostGIS数据库中。我遵循了here提到的说明。

我有一个数据库,其中有一个名为maps_region的表,其中有一个名为geom的列/字段。

我能够以文本格式(WKT、WKB和WKB Hex)将多边形字段(名为geom)导入到PostGIS数据库表中,但是,我无法在数据库中成功地将此文本列转换为适当的多边形格式。

我尝试使用几种不同格式的geom字段导入--熟知文本(WKT)格式、WKB格式和WKB十六进制格式--但无法从这三种格式中的任何一种格式转换为Polygon。

例如,我将形状作为WKT格式导入到geom字段中,然后使用以下命令将其转换为WKB十六进制格式,效果很好:

代码语言:javascript
复制
database=> UPDATE maps_region SET geom = ST_GeomFromText(geom, 4326);
UPDATE 28

但是,当我尝试将geom字段从text格式转换为Polygon类型时,我得到了以下错误:

代码语言:javascript
复制
database=> ALTER TABLE maps_region ALTER COLUMN geom TYPE Geometry(POLYGON, 4326);
ERROR:  Geometry type (MultiPolygon) does not match column type (Polygon)
database=> ALTER TABLE maps_region ALTER COLUMN geom TYPE Geometry(MULTIPOLYGON, 4326);
ERROR:  Geometry type (Polygon) does not match column type (MultiPolygon)

我尝试了两种方法:转换为Polygon和转换为MultiPolygon--都不起作用。相反,错误消息被颠倒了!

任何帮助都会非常,非常感谢。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-04-23 10:09:32

我意识到这些形状是以混合格式注册的:除了一个之外,所有的形状都是Polygon格式,而另一个是MultiPolygon格式-- see here。看起来这充分解释了这个问题/无效的转换。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43564555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档