ST_ASGEOJSON
📄字数 995
👁️阅读量 加载中...
功能描述
返回一个几何体作为 GeoJSON 中的 geometry 对象,
语法格式
sql
CLOB ST_ASGEOJSON(GEOMETRY geom, INTEGER maxdecimaldigits=9, INTEGER options=8);
CLOB ST_ASGEOJSON(GEOGRAPHY geog, INTEGER maxdecimaldigits=9, INTEGER options=0);
CLOB ST_ASGEOJSON(CLOB g1);参数说明
- geom:目标 GEOMETRY 对象。
- geog:目标 GEOGRAPHY 对象。
- g1: 目标 GEOMETRY 对象的字符串。
- maxdecimaldigits:精度,用于减少输出中使用的最大小数位数。可选,默认 9。
- options:用于在 GeoJSON 输出中添加 BBOX 或 CRS:
- 0:无附加选项。
- 1:GeoJSON BBOX
- 2:GeoJSON 短 CRS(例如 EPSG:4326)
- 4:GeoJSON 长 CRS(例如 urn:ogc:def:crs:EPSG::4326)
- 8:GeoJSON 短 CRS,如果不是 EPSG:4326(默认)
函数返回类型
CLOB 类型
使用说明
- 生成的 GeoJSON 几何体和要素遵循 GeoJSON 规范 RFC 7946。若输入几何体引用的是非标准 WGS84 经度/纬度 CRS(如
EPSG:4326,urn:ogc:def:crs:OGC::CRS84),GeoJSON 几何对象默认会附加短 CRS SRID 标识符。 - 支持 2D 和 3D 几何。
- 支持 SFS 1.1 几何类型(例如,不支持曲线类型)。
- 当使用
EPSG:4326且结果仅用于展示时,maxdecimaldigits=6通常即可满足大多数地图展示精度。 - 使用
maxdecimaldigits可能导致输出几何无效。为避免该问题,建议先使用ST_ReducePrecision并设置合适网格大小。 - GeoJSON 规范要求多边形采用右手定则定向;如需强制处理,可使用
ST_ForcePolygonCCW。规范还要求几何位于 WGS84 坐标系(SRID = 4326)中,必要时可使用ST_Transform(geom, 4326)。 - 该函数支持 3D,并且不会丢失 z-index 。
注意
暂不支持将整行数据返回为 GeoJSON 的 feature 对象。
示例
sql
SQL> SELECT ST_ASGEOJSON('LINESTRING(1 2 3, 4 5 6)'::GEOMETRY);
+-------------------------------------------------------+
| EXPR1 |
+-------------------------------------------------------+
| {"type":"LineString","coordinates":[[1,2,3],[4,5,6]]} |
+-------------------------------------------------------+
(1 row)