ST_ConvexHull — ジオメトリーの凸包を計算します。
geometry ST_ConvexHull(geometry geomA);
ジオメトリーの凸包を計算します。凸包は、入力ジオメトリーのすべてを囲む最小の凸ジオメトリです。
凸包は、ジオメトリーの集合に輪ゴムをかけて得られるジオメトリーと見ることができます。これは「真空パック」に似ている凹包と異なります。凸包は観察ポイントの集合に基づいて、響を受けた領域を決定するために、しばしば使われます。
凸包は一般的にポリゴンです。二つ以上の同一線上のポイントの凸包は、2点のラインストリングになります。一つ以上の同一ポイントの凸包はポイントです。
集約関数ではありません。ジオメトリー集合の凸包を計算するには、ジオメトリー集合をジオメトリーコレクションに集約する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
この関数は3次元に対応し、Z値を削除しません。
MULTILINESTRING と MULTIPOINT の凸包の計算。
SELECT 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)) (1 row)
ST_Collect を使ってジオメトリー集合の凸包を計算します。
この例ではポイント観察から感染領域の見積もりを返します。
SELECT d.disease_type,
ST_ConvexHull(ST_Collect(d.geom)) As geom
FROM disease_obs As d
GROUP BY d.disease_type;