Voronoi Diagram – Creating Mosaic-like Voronoi Diagrams from Disjoint Polygons

polygon-creationvoronoi-thiessen

The illustration below shows the problem:

enter image description here

as in (a) I have a set of disjoint polygons, as geometries in PostGIS. I need something like (b), the "mosaic" of this set of polygons, building it by a "influence region" criteria… Is like a Voronoi construction (illustrated by (c)): in fact, if the polygons was points, the influence regions are Voronoi.

Summarizing: I need a SQL algorithm (or some specific for PostGIS) that generates the "mosaic" of a set of disjoint polygons.
(perhaps a loop of little ST_Buffer and ST_Difference operations)

PS: I need, like Voronoi's, that space delimitation (a squared frame in (b)) is ignored.


This problem is similar to this other about lines.

EDIT (after @FelixIP comment)

I preffer to stay in vector universe, to not lost precision (ex. using ST_DelaunayTriangles and adding and subtracting interiors by the original polygons, them adapting a dual graph solution)… Some simple and automatic packages like pprepair (assisted like QGIS topological tools are not automatic).
But raster is perhaps simpler and less CPU-consuming.

This "GRID process" illustration is also valid as solution, assuming that it can allowing same precision and "euclidean influence region growing".

enter image description here

In ARCGIS exists a spatial analysis tool known as Euclidean Allocation, so, perhaps there are a PostGIS similar solution, starting with the set of polygons (classifying, rasterizing and making-back the polygons).

Best Answer

Postgis do not have a dedicated function for voronoi, but Qgis contains vornoi function which could make voronoi polygons from points, so using qgis i've followed the following steps to have these result:

-make points from polygons using extract nodes functions.

-make vornoi polygons using voroi functions in Qgis.

-make a spatial join in Qgis.

-dissolve results.

enter image description here

Related Question