ST_AsGeoJSON - Amazon Redshift

ST_AsGeoJSON

ST_AsGeoJSON 返回输入几何体或地理的 GeoJSON 表示形式。有关 GeoJSON 的更多信息,请参阅 Wikipedia 中的 GeoJSON

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

对于输入地理,ST_AsGeoJSON 返回输入地理的 GeoJSON 表示形式。地理的坐标使用指定的精度显示。

语法

ST_AsGeoJSON(geo)
ST_AsGeoJSON(geo, precision)

参数

geo

一个 GEOMETRYGEOGRAPHY 数据类型的值,或一个计算结果为 GEOMETRYGEOGRAPHY 类型的表达式。

精度

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

返回类型

VARCHAR

如果 geo 为 null,则返回 null。

如果精度 为 null,则返回 null。

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

示例

以下 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]]}