无法将 table 的所有行导出到 postgis 中的 shapefile(混合几何类型)

Can't export all rows of table to shapefile in postgis (mixed geometry types)

我在 postgis 中工作并创建了一个 table 以 LineStrings 作为几何图形。我一直在使用 postgis,我习惯于使用插件 Postgis Shapefile 和 dbf loader 将我的 tables 保存到 shapefile。由于某种原因,我现在指的 table 给出了错误

导出配置:table、架构、table 错误:table 中不兼容的混合几何类型 Table导出失败。

Whit QGIS 我试图将它保存为 shapefile。它确实成功了,但排除了我的 table 的 6 行。这些行与其他有效的行具有不同的 geom。有效的以 010500002 开头,无效的以 01020000E 开头。我在下面添加了两个示例。

知道如何修复 geom 以便将 table 导出为 shapefile 吗?

有效 "0105000020407100000100000001020000002A0000007F6ABC74D1C6F140A4703D0AFFA81A41560E2DB2C1C6F140A4703D8A09A91A41105839B4A4C6F1404C37894121A91A416DE7FBA989C6F140C520B0F239A91A41FED478E976C6F140C1CAA1C54AA91A414C37894168C6F1401D5A64BB5AA91A413108AC1C56C6F140B6F3 (...)"

无效 "01020000E0407100001C000000A01A2FDDE1E908411283C0CAD89A1E41F4FDD478E9260240000000004049F240EE7C3F353BEA0841CBA14536CE9A1E41894160E5D02202405839B4C8F649F240448B6CE7A9EA08411F85EBD1C19A1E411F85EB51B81E024054E3A59BD84AF2409EEFA7C645EB0841068195C3B19A1E417F6ABC (...)"

通过以下语句,您可以找出 table 中的几何类型。

SELECT DISTINCT ST_geometryType(your_geom_column) FROM your_table 

在我的情况下,我发现我的 table 中有一个点有很多线串。我查看了 QGIS 中的点,发现我不需要它并将其从 table 中删除。之后导出成功并修复。

下次您应该将带有 ST_AsText(几何)的永无止境的序列转换为可读的知名文本。在 WKT 中您可以看到不同的几何类型。

SELECT ST_AsText(your_geom_column) FROM your_table 

阅读此处: ST_AsText Well-known-text

我解决这个问题的方法是过滤掉我想要导出或期望存在于我的 table 上的几何类型。

利用上面提到的同样的功能,我们可以这样写。

SELECT * FROM your_table WHERE ST_GeometryType(your_geom_column) = 'ST_LineString'