名稱

ST_ConvexHull — 計算幾何的凸包。

概要

geometry ST_ConvexHull(geometry geomA);

描述

計算幾何的凸包。凸包是包含輸入中所有幾何的最小凸幾何形狀。

可以將凸包視為將橡皮筋纏繞在一組幾何形狀周圍所獲得的幾何形狀。這與凹包不同,凹包類似於幾何形狀的「收縮包裝」。凸包通常用於根據一組點觀測值確定受影響的區域。

在一般情況下,凸包是一個多邊形。兩個或多個共線點的凸包是一條雙點線串。一個或多個相同點的凸包是一個點。

這不是一個聚合函數。要計算一組幾何的凸包,請使用ST_Collect將它們聚合到一個幾何集合中(例如,ST_ConvexHull(ST_Collect(geom)))。

由GEOS模組執行

此方法實作了OGC Simple Features Implementation Specification 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;