Name

ST_VoronoiPolygons — Renvoie les cellules de la représentation de Voronoï des sommets d'une géométrie.

Synopsis

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

Description

Calcule un diagramme de Voronoï bidimensionnel à partir des sommets de la géométrie fournie. Le résultat est une GEOMETRYCOLLECTION de POLYGONES qui couvre une enveloppe plus grande que l'étendue des sommets d'entrée. Renvoie null si la géométrie d'entrée est null. Renvoie une collection de géométries vide si la géométrie d'entrée ne contient qu'un seul sommet. Renvoie une collection de géométries vide si l'enveloppe extend_to a une surface nulle.

Paramètres optionnels :

  • tolerance : distance à laquelle les sommets seront considérés comme équivalents. La robustesse de l'algorithme peut être améliorée en fournissant une distance de tolérance non nulle. (par défaut = 0.0)

  • extend_to : S'il est présent, la représentation est étendue pour couvrir l'enveloppe de la géométrie fournie, à moins qu'elle ne soit plus petite que l'enveloppe par défaut (default = NULL, l'enveloppe par défaut est la boîte de délimitation de l'entrée élargie d'environ 50 %).

Effectué par le module GEOS.

Disponibilité : 2.3.0

Exemples

Points superposés à la représentation de Voronoï

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)))

Représentation de Voronoï, avec une tolérance de 30 unités

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)))