

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# ST\$1ConvexHull
<a name="ST_ConvexHull-function"></a>

ST\$1ConvexHull 返回一个几何体，该几何体表示输入几何体中包含的非空点的凸包。

对于空输入，生成的几何体与输入几何体相同。对于所有非空输入，该函数在输入几何体的 2D 投影上运行。但是，输出几何体的维度取决于输入几何体的维度。更具体地说，当输入几何体为非空 3DM 或 3D 几何体时，`m` 坐标将被删除。也就是说，返回的几何体的维度分别为 2D 或 3DZ。如果输入为非空 2D 或 3DZ 几何体，则生成的几何体具有相同的维度。

## 语法
<a name="ST_ConvexHull-function-syntax"></a>

```
ST_ConvexHull(geom)
```

## 参数
<a name="ST_ConvexHull-function-arguments"></a>

 *geom*   
一个 `GEOMETRY` 数据类型的值，或一个计算结果为 `GEOMETRY` 类型的表达式。

## 返回类型
<a name="ST_ConvexHull-function-return"></a>

`GEOMETRY`

返回的几何体的空间参考系统标识符 (SRID) 值是输入几何体的 SRID 值。

如果 *geom* 为 null，则返回 null。

返回的值如下所示。


| 凸包上的点数 | 几何体子类型 | 
| --- | --- | 
| 0 | 返回 *geom* 的副本。 | 
| 1 | 返回子类型 `POINT`。 | 
| 2 | 返回子类型 `LINESTRING`。返回线串的两个点按字典顺序排序。 | 
| 3 或更大 | 返回不具有内环的 `POLYGON` 子类型。面是顺时针方向的，外环的第一个点是按字典顺序排列的环的最小点。 | 

## 示例
<a name="ST_ConvexHull-function-examples"></a>

以下 SQL 返回线串的扩展已知文本 (EWKT) 表示形式。在本例中，返回的凸包是面。

```
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('LINESTRING(0 0,1 0,0 1,1 1,0.5 0.5)'))) as output;
```

```
output
-------------
POLYGON((0 0,0 1,1 1,1 0,0 0))
```

以下 SQL 返回线串的 EWKT 表示形式。在本例中，返回的凸包是线串。

```
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('LINESTRING(0 0,1 1,0.2 0.2,0.6 0.6,0.5 0.5)'))) as output;
```

```
output
-------------
LINESTRING(0 0,1 1)
```

以下 SQL 返回多点的 EWKT 表示形式。在本例中，返回的凸包是点。

```
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('MULTIPOINT(0 0,0 0,0 0)'))) as output;
```

```
output
-------------
POINT(0 0)
```