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_AsText(ST_VoronoiPolygons('MULTIPOINT (50 30, 60 30, 100 100,10 150, 110 120)'::geometry
            )) AS geom;
GEOMETRYCOLLECTION(POLYGON((-110 270,100.5 270,59.34782608695652 132.82608695652175,36.81818181818182 92.27272727272727,-110 43.33333333333332,-110 270)),
POLYGON((-110 -90,-110 43.33333333333332,36.81818181818182 92.27272727272727,55 79.28571428571429,55 -90,-110 -90)),
POLYGON((230 -20.71428571428572,55 79.28571428571429,36.81818181818182 92.27272727272727,59.34782608695652 132.82608695652175,230 47.50000000000001,230 -20.71428571428572)),POLYGON((230 -90,55 -90,55 79.28571428571429,230 -20.71428571428572,230 -90)),
POLYGON((230 270,230 47.50000000000001,59.34782608695652 132.82608695652175,100.5 270,230 270)))

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

SELECT ST_AsText(ST_VoronoiPolygons('MULTIPOINT (50 30, 60 30, 100 100,10 150, 110 120)'::geometry,
            30)) AS geom;
GEOMETRYCOLLECTION(POLYGON((-110 270,135.55555555555557 270,36.81818181818182 92.27272727272727,-110 43.33333333333332,-110 270)),
POLYGON((230 270,230 -45.71428571428574,36.81818181818182 92.27272727272727,135.55555555555557 270,230 270)),
POLYGON((230 -90,-110 -90,-110 43.33333333333332,36.81818181818182 92.27272727272727,230 -45.71428571428574,230 -90)))