我正在使用Python (GeoPandas,SQLAlchemy,GeoAlchemy2)将多边形形状导入到PostGIS数据库中。我遵循了here提到的说明。
我有一个数据库,其中有一个名为maps_region的表,其中有一个名为geom的列/字段。
我能够以文本格式(WKT、WKB和WKB Hex)将多边形字段(名为geom)导入到PostGIS数据库表中,但是,我无法在数据库中成功地将此文本列转换为适当的多边形格式。
我尝试使用几种不同格式的geom字段导入--熟知文本(WKT)格式、WKB格式和WKB十六进制格式--但无法从这三种格式中的任何一种格式转换为Polygon。
例如,我将形状作为WKT格式导入到geom字段中,然后使用以下命令将其转换为WKB十六进制格式,效果很好:
database=> UPDATE maps_region SET geom = ST_GeomFromText(geom, 4326);
UPDATE 28但是,当我尝试将geom字段从text格式转换为Polygon类型时,我得到了以下错误:
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--都不起作用。相反,错误消息被颠倒了!
任何帮助都会非常,非常感谢。
提前感谢!
发布于 2017-04-23 10:09:32
我意识到这些形状是以混合格式注册的:除了一个之外,所有的形状都是Polygon格式,而另一个是MultiPolygon格式-- see here。看起来这充分解释了这个问题/无效的转换。
https://stackoverflow.com/questions/43564555
复制相似问题