

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 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\$1AsGeoJSON
<a name="ST_AsGeoJSON-function"></a>

ST\$1AsGeoJSON 返回输入几何体或地理的 GeoJSON 表示形式。有关 GeoJSON 的更多信息，请参阅 Wikipedia 中的 [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON)。

对于 3DZ 和 4D 几何体，输出几何体是输入 3DZ 或 4D 几何体的 3DZ 投影。也就是说，`x`、`y`, 和 `z` 坐标存在于输出中。对于 3DZ 几何体，输出几何体是输入 3DM 几何体的 2D 投影。也就是说，只有 `x` 和 `y` 坐标存在于输出中。

对于输入地理，ST\$1AsGeoJSON 返回输入地理的 GeoJSON 表示形式。地理的坐标使用指定的精度显示。

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

```
ST_AsGeoJSON(geo)
```

```
ST_AsGeoJSON(geo, precision)
```

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

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

 *精度*   
一个 数据类型的 值`INTEGER` 对于几何体，*geo* 的坐标使用指定的精度 1–20 显示。如果未指定*精度*，则默认值为 15。对于地理，*geo* 的坐标使用指定的精度显示。如果未指定*精度*，则默认值为 15。

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

`VARCHAR`

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

如果*精度* 为 null，则返回 null。

如果结果大于 64-KB `VARCHAR`，则将返回一个错误。

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

以下 SQL 返回线串的 GeoJSON 表示形式。

```
SELECT ST_AsGeoJSON(ST_GeomFromText('LINESTRING(3.141592653589793 -6.283185307179586,2.718281828459045 -1.414213562373095)'));
```

```
st_asgeojson
----------------------------------------------------------------------------------------------------------------
 {"type":"LineString","coordinates":[[3.14159265358979,-6.28318530717959],[2.71828182845905,-1.41421356237309]]}
```

以下 SQL 返回线串的 GeoJSON 表示形式。使用六位数精度显示几何体的坐标。

```
SELECT ST_AsGeoJSON(ST_GeomFromText('LINESTRING(3.141592653589793 -6.283185307179586,2.718281828459045 -1.414213562373095)'), 6);
```

```
st_asgeojson
-----------------------------------------------------------------------------
  {"type":"LineString","coordinates":[[3.14159,-6.28319],[2.71828,-1.41421]]}
```

以下 SQL 返回地理的 GeoJSON 表示形式。

```
SELECT ST_AsGeoJSON(ST_GeogFromText('LINESTRING(110 40, 2 3, -10 80, -7 9)'));
```

```
                             st_asgeojson
----------------------------------------------------------------------
 {"type":"LineString","coordinates":[[110,40],[2,3],[-10,80],[-7,9]]}
```