CG_OptimalConvexPartition — Beräknar en optimal konvex partition av polygongeometrin
geometry CG_OptimalConvexPartition(geometry geom);
Beräknar en optimal konvex partition av polygongeometrin.
|
|
|
En partition av en polygon P är en uppsättning polygoner som är sådana att polygonernas insidor inte skär varandra och att polygonernas förening är lika med insidan av den ursprungliga polygonen P. CG_OptimalConvexPartition producerar en partition som är optimal med avseende på antalet delar. |
Tillgänglighet: 3.5.0 - kräver SFCGAL >= 1.5.0.
Kräver SFCGAL >= 1.5.0
Denna metod behöver SFCGAL-backend.
The optimal convex partition uses the same polygon and produces the smallest documented piece count.
WITH data AS (
SELECT 'POLYGON((156 150,83 181,89 131,148 120,107 61,32 159,0 45,41 86,45 1,177 2,67 24,109 31,170 60,180 110,156 150))'::geometry AS input_polygon
)
SELECT input_polygon AS input_polygon,
CG_OptimalConvexPartition(input_polygon) AS partition
FROM data;
POLYGON((156 150,83 181,89 131,148 120,107 61,32 159,0 45,41 86,45 1,177 2,67 24,109 31,170 60,180 110,156 150)) | GEOMETRYCOLLECTION(POLYGON((156 150,83 181,89 131,148 120,156 150)), POLYGON((32 159,0 45,41 86,32 159)), POLYGON((45 1,177 2,67 24,45 1)), POLYGON((41 86,45 1,67 24,41 86)), POLYGON((107 61,32 159,41 86,67 24,109 31,107 61)), POLYGON((148 120,107 61,109 31,170 60,180 110,148 120)), POLYGON((156 150,148 120,180 110,156 150)))