Name

ST_VoronoiPolygons — Gibt die Zellen des Voronoi-Diagramms der Scheitelpunkte einer Geometrie zurück.

Synopsis

geometry ST_VoronoiPolygons( geometry geom , float8 tolerance = 0.0 , geometry extend_to = NULL );

Beschreibung

Berechnet ein zweidimensionales Voronoi-Diagramm aus den Scheitelpunkten der angegebenen Geometrie. Das Ergebnis ist eine GEOMETRIE-SAMMLUNG von POLYGONEN, die einen Bereich abdeckt, der größer ist als die Ausdehnung der Eingabescheitelpunkte. Gibt null zurück, wenn die Eingabegeometrie null ist. Gibt eine leere Geometriesammlung zurück, wenn die Eingabegeometrie nur einen Scheitelpunkt enthält. Gibt eine leere Geometriesammlung zurück, wenn die extend_to-Hüllkurve eine Fläche von Null hat.

Optionale Parameter:

  • Toleranz: Der Abstand, innerhalb dessen Scheitelpunkte als gleichwertig betrachtet werden. Die Robustheit des Algorithmus kann durch Angabe einer Toleranzdistanz ungleich Null verbessert werden. (Voreinstellung = 0.0)

  • extend_to: Wenn vorhanden, wird das Diagramm so erweitert, dass es die Hüllkurve der übergebenen Geometrie abdeckt, sofern diese nicht kleiner als die Standardhüllkurve ist (Standard = NULL, Standardhüllkurve ist die um etwa 50 % erweiterte Bounding Box der Eingabe).

Wird vom GEOS Modul ausgeführt

Verfügbarkeit: 2.3.0

Beispiele

Punkte über dem Voronoi Diagramm

SELECT ST_VoronoiPolygons(
                'MULTIPOINT (50 30, 60 30, 100 100,10 150, 110 120)'::geometry
            ) AS geom;
ST_AsText output
GEOMETRYCOLLECTION(POLYGON((-110 43.3333333333333,-110 270,100.5 270,59.3478260869565 132.826086956522,36.8181818181818 92.2727272727273,-110 43.3333333333333)),
POLYGON((55 -90,-110 -90,-110 43.3333333333333,36.8181818181818 92.2727272727273,55 79.2857142857143,55 -90)),
POLYGON((230 47.5,230 -20.7142857142857,55 79.2857142857143,36.8181818181818 92.2727272727273,59.3478260869565 132.826086956522,230 47.5)),POLYGON((230 -20.7142857142857,230 -90,55 -90,55 79.2857142857143,230 -20.7142857142857)),
POLYGON((100.5 270,230 270,230 47.5,59.3478260869565 132.826086956522,100.5 270)))

Voronoi-Diagramm, mit einer Toleranz von 30 Einheiten

SELECT ST_VoronoiPolygons(
            'MULTIPOINT (50 30, 60 30, 100 100,10 150, 110 120)'::geometry,
            30) AS geom;
ST_AsText output
GEOMETRYCOLLECTION(POLYGON((-110 43.3333333333333,-110 270,100.5 270,59.3478260869565 132.826086956522,36.8181818181818 92.2727272727273,-110 43.3333333333333)),
POLYGON((230 47.5,230 -45.7142857142858,36.8181818181818 92.2727272727273,59.3478260869565 132.826086956522,230 47.5)),POLYGON((230 -45.7142857142858,230 -90,-110 -90,-110 43.3333333333333,36.8181818181818 92.2727272727273,230 -45.7142857142858)),
POLYGON((100.5 270,230 270,230 47.5,59.3478260869565 132.826086956522,100.5 270)))