2017-04-22 497 views
-1

我使用Python(GeoPandas,SQLAlchemy,GeoAlchemy2)將多邊形的形狀導入到PostGIS數據庫中。我遵循here提到的說明。PostGIS:將文本WKT/WKB/WKB轉換爲多邊形

我有一個名爲maps_region的表與一個名爲geom的列/字段的數據庫。

我能夠以文本格式(WKT,WKB和WKB十六進制)將多邊形字段(名爲geom)導入到PostGIS數據庫表中,但是,我無法將此文本列成功轉換爲適當的數據庫中的多邊形格式。

我試圖在熟知文本(WKT)格式,WKB格式,WKB六角幾個不同formats--與geom場進口format--但無法從任何三種格式轉換爲多邊形。

例如,我導入的形狀進geom字段作爲WKT格式,然後轉換爲WKB十六進制格式,使用下面的命令,其中工作得很好:

database=> UPDATE maps_region SET geom = ST_GeomFromText(geom, 4326); 
UPDATE 28 

然而,當我然後嘗試從text格式轉換geom場成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) 

我試過兩種方式:轉換爲多邊形,並轉換爲MULT iPolygon--並且都沒有工作。相反,錯誤信息只是顛倒了!

任何幫助將大大,非常感謝。

在此先感謝!

回答

0

我意識到形狀是以混合格式註冊的:除了一個格式爲Polygon格式,其中一個格式爲MultiPolygon格式 - see here。看起來像這足以解釋問題/無效轉換。