Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_VORONOIPOLYGONS

📄字数 839
👁️阅读量 加载中...

功能描述

根据提供的几何图形的顶点计算二维 Voronoi 图。 结果是 POLYGON 的 GEOMETRYCOLLECTION,其覆盖的包络大于输入顶点的范围。

语法格式

sql
GEOMETRY ST_VORONOIPOLYGONS( GEOMETRY geom, DOUBLE tolerance = 0.0 , GEOMETRY extend_to = NULL );

参数说明

  • geom:目标 GEOMETRY 对象。
  • tolerance:容差距离,顶点被视为相等的距离.可选,默认为 0.0。非零容差距离可以提高算法的稳健性。
  • extend_to:最小外接矩形,可选。默认为 NULL时,最小外接矩形是输入图形扩展约 50% 的边界框。如果存在,图表将扩展以覆盖所提供几何图形的最小外接矩形。

函数返回类型

GEOMETRY 类型

使用说明

  1. 如果输入几何图形为 NULL,则返回 NULL。
  2. 如果输入几何图形仅包含一个顶点,则返回一个空几何图形集合。
  3. 如果 extend_to 最小外接矩形的面积为零,则返回空几何集合。
  4. 此函数是由 GEOS 模块执行。

示例

覆盖在 Voronoi 图顶部的点:

sql
SQL> SELECT ST_AsText(ST_VORONOIPOLYGONS(
                  'MULTIPOINT (50 30, 60 30, 100 100,10 150, 110 120)'::geometry,
                  30)) AS geom;

+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                                                                                                  GEOM                                                                                                                                                                                   |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GEOMETRYCOLLECTION(POLYGON((-110 270,135.55555555555557 270,36.81818181818182 92.27272727272727,-110 43.33333333333332,-110 270)),POLYGON((230 270,230 -45.714285714285765,36.81818181818182 92.27272727272727,135.55555555555557 270,230 270)),POLYGON((230 -90,-110 -90,-110 43.33333333333332,36.81818181818182 92.27272727272727,230 -45.714285714285765,230 -90))) |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

(1 row)