

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# ST\$1AddPoint
<a name="ST_AddPoint-function"></a>

ST\$1AddPoint 傳回的 linestring 幾何與已新增點的輸入幾何相同。如果提供索引，則點會新增在索引位置。如果索引為 -1 或未提供，則點附加至 linestring。

索引是以零開始。結果的空間參考系統識別碼 (SRID) 與輸入幾何的 SRID 相同。

傳回幾何的維度與 *geom1* 值的維度相同。如果 *geom1* 和 *geom2* 具有不同的維度，則將 *geom2* 投影到 *geom1* 的維度。

## 語法
<a name="ST_AddPoint-function-syntax"></a>

```
ST_AddPoint(geom1, geom2)
```

```
ST_AddPoint(geom1, geom2, index)
```

## 引數
<a name="ST_AddPoint-function-arguments"></a>

 *geom1*   
`GEOMETRY` 資料類型的值，或是評估為 `GEOMETRY` 類型的表達式。子類型必須是 `LINESTRING`。

 *geom2*   
`GEOMETRY` 資料類型的值，或是評估為 `GEOMETRY` 類型的表達式。子類型必須是 `POINT`。該點可以是空點。

 *索引*   
資料類型 `INTEGER` 的值，代表以零開始的索引位置。

## 傳回類型
<a name="ST_AddPoint-function-return"></a>

`GEOMETRY` 

如果 *geom1*、*geom2* 或 *index* 為 Null，則會傳回 Null。

如果 *geom2* 是空點，則傳回 *geom1* 的副本。

如果 *geom1* 不是 `LINESTRING`，則會傳回錯誤。

如果 *geom2* 不是 `POINT`，則會傳回錯誤。

如果 *index* 超出範圍，則會傳回錯誤。索引位置的有效值是 -1 或是介於 0 與 `ST_NumPoints(geom1)` 之間的值。

## 範例
<a name="ST_AddPoint-function-examples"></a>

下列 SQL 會將一點新增到 linestring，使其成為一個封閉的 linestring。

```
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326))
SELECT ST_AsEWKT(ST_AddPoint(g, ST_StartPoint(g))) FROM tmp;
```

```
 st_asewkt
------------------------------------------------
 SRID=4326;LINESTRING(0 0,10 0,10 10,5 5,0 5,0 0)
```

下列 SQL 會將一點新增到 linestring 中的特定位置。

```
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326))
SELECT ST_AsEWKT(ST_AddPoint(g, ST_SetSRID(ST_Point(5, 10), 4326), 3)) FROM tmp;
```

```
 st_asewkt
------------------------------------------------
 SRID=4326;LINESTRING(0 0,10 0,10 10,5 10,5 5,0 5)
```