我正在尝试在空间表中的所有多边形之间执行递归交集,并获得结果(多)pololygons以及每个多边形的每个交叉点的信息.
解释它的图像(不是真正的规模):

假设A, B, C表格中有正方形.我想A, B, C, A+B, A+C, B+C, A+B+C在输出中有多边形,我需要知道这A+B是A和B等的交集.
到目前为止,我有一个执行交叉点的查询,但它没有"切断"原始多边形的相交部分.例如:
Polygon A should be A - (A+B) - (A+C) - (A+B+C)
Polygon A+C should be A+C - (A+B+C)
Run Code Online (Sandbox Code Playgroud)
我现在为A和A+C多边形得到的结果的图像:

这是一个测试脚本,使用图像中的方块作为数据.看看这个area专栏,很明显一些递归的ST_Difference丢失了,我只是弄清楚怎么做.欢迎任何想法.
-- Create a test table
CREATE TABLE test (
name text PRIMARY KEY,
geom geometry(POLYGON)
);
-- Insert test data
INSERT INTO test (name, geom) VALUES
('A', ST_GeomFromText('POLYGON((1 2, 1 6, 5 …Run Code Online (Sandbox Code Playgroud)