名称

ST_ConvexHull — 计算几何图形的凸包。

概要

geometry ST_ConvexHull(geometry geomA);

描述

计算几何图形的凸包。凸包是最小的凸几何图形,它包含输入中的所有几何图形。

可以将凸包视为通过将橡皮筋包裹在一组几何图形周围而获得的几何图形。这与凹包不同,凹包类似于“收缩包裹”几何图形。凸包通常用于根据一组点观测值确定受影响区域。

在一般情况下,凸包是多边形。两个或多个共线点的凸包是两点线字符串。一个或多个相同点的凸包是一个点。

这不是一个聚合函数。要计算一组几何图形的凸包,请使用ST_Collect 将它们聚合到一个几何图形集合中(例如 ST_ConvexHull(ST_Collect(geom)))。

由 GEOS 模块执行

此方法实现了OGC 简单要素实现规范 for SQL 1.1。

s2.1.1.3

此方法实现了 SQL/MM 规范。

SQL-MM IEC 13249-3: 5.1.16

此函数支持 3d 并且不会删除 z 索引。

示例

多线字符串和多点的凸包

SELECT ST_AsText(ST_ConvexHull(
    ST_Collect(
        ST_GeomFromText('MULTILINESTRING((100 190,10 8),(150 10, 20 30))'),
            ST_GeomFromText('MULTIPOINT(50 5, 150 30, 50 10, 10 10)')
            )) );
---st_astext--
POLYGON((50 5,10 8,10 10,100 190,150 30,150 10,50 5))
    

使用 ST_Collect 计算几何图形集的凸包。

--Get estimate of infected area based on point observations
SELECT d.disease_type,
    ST_ConvexHull(ST_Collect(d.geom)) As geom
    FROM disease_obs As d
    GROUP BY d.disease_type;

另请参阅

ST_CollectST_ConcaveHullST_MinimumBoundingCircle