ST_VoronoiPolygons — Returnerar cellerna i Voronoi-diagrammet för hörnen i en geometri.
geometry ST_VoronoiPolygons(
geometry geom , float8 tolerance = 0.0 , geometry extend_to = NULL )
;
Beräknar ett tvådimensionellt Voronoi-diagram från hörnen i den angivna geometrin. Resultatet är en GEOMETRYCOLLECTION av POLYGONER som täcker ett kuvert som är större än omfattningen av de ingående hörnen. Returnerar null om indatageometrin är null. Returnerar en tom geometrisamling om indatageometrin endast innehåller en vertex. Returnerar en tom geometrisamling om extend_to-kuvertet
har noll area.
Valfria parametrar:
tolerans
: Det avstånd inom vilket hörn anses vara likvärdiga. Algoritmens robusthet kan förbättras genom att ange ett toleransavstånd som inte är noll. (standard = 0,0)
extend_to
: Om detta anges utökas diagrammet så att det täcker den medföljande geometrins omslutningsyta, om den inte är mindre än standardomslutningsytan (standard = NULL, standardomslutningsytan är inmatningsytans begränsningsbox utökad med ca 50%).
Utförs av GEOS-modulen.
Tillgänglighet: 2.3.0
Punkter överlagrade på toppen av Voronoi-diagrammet
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-diagram, med tolerans på 30 enheter
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)))