是否可以将包含多多边形的形状文件导入PostGIS中的单个多边形?每当我try 导入多边形的形状文件时,它都存储为geom列中的多多边形(与单个多边形相反).因此,我无法将其从多多边形中提取为单个多边形值.

非常感谢所有有用的建议

推荐答案

您可以将ST_GeometryNST_NumGeometries和generate_series函数一起使用,以获得所需的内容.

假设你有Jakub例子中的表格:

CREATE TABLE multi AS(
SELECT 1 as id, 2 as test, ST_GeomFromText('MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0)),((1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))') AS geom
);

这个包含一个多多边形、一个id和另一列.

要从包含所有其他属性的表中获取每个多边形,请try 以下操作:

SELECT id, test, ST_GeometryN(geom, generate_series(1, ST_NumGeometries(geom))) AS geom 
FROM multi

"id"和"test"是原始表中每一行的值.

因此,您将在单独的单个几何图形部分拆分每个多几何图形,而其他列中的值保持不变.

只需将示例中的列和表格替换为导出的shapefile中的列,就可以得到带有单个多边形的表格.

希望这能回答你的问题.

Postgresql相关问答推荐

org.postgresql. util.PSQLException:使用docker + docker—compose + kafka + springboot时try 连接失败

Postgres BULK INSERT如何影响Debezium?

使用Spring data jpa和CriteriaQuery在jsonb列中搜索操作

Postgres:这是对OVERLAPS谓词的等效重写吗?

在Postgres游标中从一行变量中减go 另一行变量

Select 与输入数组完全相交的所有行?

PostgreSQL 中的 Datum 数据类型是什么以及它的用途是什么?

Django 1.8 数组字段追加和扩展

PostgreSQL 中基于时间戳的移动平均线

升级到 OSX Mavericks 后修复 postgresql

如何在构建时链接 docker 容器?

timezone date_trunc 函数

错误:must be owner of language plpgsql

Postgres 默认按 id 排序 - worldship

Postgres 日期重叠约束

Oracle 相当于 Postgres 的 DISTINCT ON?

使用 Postgresql 在过滤器中制作 Sqlalchemy 使用日期

在 Select (PostgreSQL/pgAdmin) 中将布尔值返回为 TRUE 或 FALSE

pg_restore 目录错误

Django 中的唯一模型字段和区分大小写(postgres)