Bạn muốn biến đa giác của mình thành các đường, biến các đường đó thành các cạnh bao phủ đơn giản, đơn giản hóa các cạnh đó, sau đó xây dựng lại chúng thành đa giác một lần nữa và cuối cùng sử dụng đa giác điểm để nối lại các thuộc tính của đa giác cũ với những cái mới.
CREATE TABLE rings AS SELECT (ST_DumpRings(polys)).geom AS rings FROM polytable;
CREATE TABLE simplerings AS SELECT ST_Union(rings) AS simplerings FROM rings;
CREATE TABLE newpolycollection AS SELECT ST_Polygonize(ST_Simplify(simplerings, 10.0)) AS geom FROM simplerings;
CREATE TABLE newpolysnoattributes AS SELECT (ST_Dump(geom)).geom FROM newpolycollection;
CREATE TABLE newpolytable AS SELECT new.geom, old.attr FROM newpolysnoattributes new, polytable old WHERE ST_Contains(new.geom, ST_PointOnSurface(old.polys));
Có lỗi ở trên, nhưng khái niệm cốt lõi là có. Bạn có thể làm tất cả trong một truy vấn nếu bạn muốn.