小编Egg*_*ant的帖子

PostGIS多边形之间的递归交集

我正在尝试在空间表中的所有多边形之间执行递归交集,并获得结果(多)pololygons以及每个多边形的每个交叉点的信息.

解释它的图像(不是真正的规模): 例

假设A, B, C表格中有正方形.我想A, B, C, A+B, A+C, B+C, A+B+C在输出中有多边形,我需要知道这A+BAB等的交集.

到目前为止,我有一个执行交叉点的查询,但它没有"切断"原始多边形的相交部分.例如:

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)

我现在为AA+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)

sql postgresql postgis

11
推荐指数
1
解决办法
3602
查看次数

标签 统计

postgis ×1

postgresql ×1

sql ×1