47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
## Voronoi
|
|
|
|
Function to construct the [Voronoi Diagram](https://en.wikipedia.org/wiki/Voronoi_diagram) from a dataset of scatter points, clipped to the significant area
|
|
|
|
PostGIS wil include this in future versions ([doc for dev branch](http://postgis.net/docs/manual-dev/ST_Voronoi.html)) and will perform faster for sure, but in the meantime...
|
|
|
|
|
|
### CDB_Voronoi (geom geometry[], buffer numeric DEFAULT 0.5, tolerance numeric DEFAULT 1e-9)
|
|
|
|
#### Arguments
|
|
|
|
| Name | Type | Description |
|
|
|------|------|-------------|
|
|
| geom | geometry[] | Array of points's geometries |
|
|
| buffer | numeric | enlargment ratio for the envelope area used for the restraints|
|
|
| tolerance | numeric | Delaunay tolerance, optional |
|
|
|
|
### Returns
|
|
|
|
| Column Name | Type | Description |
|
|
|-------------|------|-------------|
|
|
| geom | geometry collection | Collection of polygons of the Voronoi cells|
|
|
|
|
|
|
#### Example Usage
|
|
|
|
```sql
|
|
WITH a AS (
|
|
SELECT
|
|
ARRAY[
|
|
ST_GeomFromText('POINT(2.1744 41.403)', 4326),
|
|
ST_GeomFromText('POINT(2.1228 41.380)', 4326),
|
|
ST_GeomFromText('POINT(2.1511 41.374)', 4326),
|
|
ST_GeomFromText('POINT(2.1528 41.413)', 4326),
|
|
ST_GeomFromText('POINT(2.165 41.391)', 4326),
|
|
ST_GeomFromText('POINT(2.1498 41.371)', 4326),
|
|
ST_GeomFromText('POINT(2.1533 41.368)', 4326),
|
|
ST_GeomFromText('POINT(2.131386 41.41399)', 4326)
|
|
] AS geomin
|
|
)
|
|
SELECT
|
|
ST_TRANSFORM(
|
|
(ST_Dump(cdb_crankshaft.CDB_Voronoi(geomin, 0.2, 1e-9))).geom,
|
|
3857) as the_geom_webmercator
|
|
FROM a;
|
|
```
|