名前

ST_ConvexHull — ジオメトリの凸包を計算します。

概要

geometry ST_ConvexHull(geometry geomA);

説明

ジオメトリの凸包を計算します。凸包は、入力ジオメトリのすべてを囲む最小の凸ジオメトリです。

凸包は一般的にポリゴンです。二つ以上の同一線上のポイントの凸包は、2点のラインストリングになります。一つ以上の同一ポイントの凸包はポイントです。

通常はマルチ系ジオメトリとジオメトリコレクションで使います。集約関数ではありません。ジオメトリ集合の凸包を計算するには、集約にST_Collectを使います。

凸包は、ジオメトリの集合に輪ゴムをかけて得られるジオメトリと見ることができます。これは「縮小包装」に似ている凹包と異なります。凸包は、しばしば観察値のポイントの集合を基にして、影響を受ける範囲を決定するのに使用します。

GEOSモジュールによって実現しています。

This method implements the OpenGIS Simple Features Implementation Specification for SQL 1.1. s2.1.1.3

This method implements the SQL/MM specification. SQL-MM 3: 5.1.16

This function supports 3d and will not drop the z-index.

マルチラインストリングとマルチポイントの凸包

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を使ってジオメトリ集合の凸包を計算します。

-- ポイント観察に基づいて、感染域の推定を得る
SELECT d.disease_type,
    ST_ConvexHull(ST_Collect(d.the_geom)) As the_geom
    FROM disease_obs As d
    GROUP BY d.disease_type;

関連情報

ST_Collect, ST_ConcaveHull, ST_MinimumBoundingCircle