Namn

CG_YMonotonePartition — Beräknar y-monoton partition av polygongeometrin

Synopsis

geometry CG_YMonotonePartition(geometry geom);

Beskrivning

Beräknar y-monoton partition av polygongeometrin.

[Notera]

En partition av en polygon P är en uppsättning polygoner som är sådana att polygonernas inre delar inte skär varandra och att polygonernas förening är lika med den ursprungliga polygonen P:s inre del. En y-monoton polygon är en polygon vars hörn v1,...,vn kan delas upp i två kedjor v1,...,vk och vk,...,vn,v1, så att varje horisontell linje skär endera kedjan högst en gång. Denna algoritm garanterar inte en gräns för antalet polygoner som produceras i förhållande till det optimala antalet.

Tillgänglighet: 3.5.0 - kräver SFCGAL >= 1.5.0.

Kräver SFCGAL >= 1.5.0

Denna metod behöver SFCGAL-backend.

Exempel

The same polygon can also be partitioned into y-monotone pieces for downstream processing.

Code
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_YMonotonePartition(input_polygon) AS partition
FROM data;
Rasterutdata
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((32 159,0 45,41 86,32 159)), POLYGON((107 61,32 159,41 86,45 1,177 2,67 24,109 31,170 60,107 61)), POLYGON((156 150,83 181,89 131,148 120,107 61,170 60,180 110,156 150)))
Figure
Geometry figure for visual-cg-ymonotonepartition-01