Name

CG_YMonotonePartition — Berechnet die y-monotone Partition der Polygongeometrie

Übersicht

geometry CG_YMonotonePartition(geometry geom);

Beschreibung

Berechnet die y-monotone Partition der Polygongeometrie.

[Anmerkung]

Eine Partition eines Polygons P ist eine Menge von Polygonen, die so beschaffen ist, dass sich die Innenräume der Polygone nicht schneiden und die Vereinigung der Polygone gleich dem Innenraum des ursprünglichen Polygons P ist. Ein y-monotones Polygon ist ein Polygon, dessen Scheitelpunkte v1,...,vn in zwei Ketten v1,...,vk und vk,...,vn,v1 unterteilt werden können, so dass jede horizontale Linie eine der beiden Ketten höchstens einmal schneidet. Dieser Algorithmus garantiert keine Begrenzung der Anzahl der erzeugten Polygone in Bezug auf die optimale Anzahl.

Verfügbarkeit: 3.5.0 - erfordert SFCGAL >= 1.5.0.

Erfordert SFCGAL >= 1.5.0

Diese Methode benötigt ein SFCGAL-Backend.

Beispiele

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;
Ausgabe von Rastern
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