

 从补丁 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\$1Perimeter
<a name="ST_Perimeter-function"></a>

对于输入平面几何体，ST\$1Perimeter 返回 2D 投影的笛卡尔周长（边界长度）。周长单位与用于表示输入几何体坐标的单位相同。对于点、多点和线性几何体，此函数返回零 (0)。当输入为几何体集合时，此函数返回集合中的几何体周长之和。

对于输入平面地理，ST\$1Piameter 返回由 SRID 确定的在椭球体上计算的输入平面地理的 2D 投影的测地线周长（边界长度）。周长以米为单位。对于点、多点和线性地理，此函数返回零 (0)。当输入为几何体集合时，此函数返回集合中的地理周长之和。

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

```
ST_Perimeter(geo)
```

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

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

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

`DOUBLE PRECISION`

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

如果找不到 SRID 值，则返回一个错误。

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

以下 SQL 返回多边形的笛卡尔周长。

```
SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((10 0,20 0,20 10,10 0)))'));
```

```
 st_perimeter
--------------------------------
    68.2842712474619
```

以下 SQL 返回多边形的笛卡尔周长。

```
SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((10 0,20 0,20 10,10 0)))'));
```

```
 st_perimeter
--------------------------------
    68.2842712474619
```

以下 SQL 返回地理中的多边形周长。

```
SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;POLYGON((0 0,1 0,0 1,0 0))'));
```

```
 st_perimeter 
------------------
 378790.428393693
```

以下 SQL 返回地理中线串的周长。

```
SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;LINESTRING(5 0,10 0)'));
```

```
 st_perimeter 
--------------
 0
```