Skip to content

适用虚谷数据库版本

v12.10.13



适用虚谷数据库版本

v12.10.13


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 类型

使用说明

  1. 生成的 GeoJSON 几何体和要素遵循 GeoJSON 规范 RFC 7946。若输入几何体引用的是非标准 WGS84 经度/纬度 CRS(如
    EPSG:4326,urn:ogc:def:crs:OGC::CRS84),GeoJSON 几何对象默认会附加短 CRS SRID 标识符。
  2. 支持 2D 和 3D 几何。
  3. 支持 SFS 1.1 几何类型(例如,不支持曲线类型)。
  4. 当使用 EPSG:4326 且结果仅用于展示时,maxdecimaldigits=6 通常即可满足大多数地图展示精度。
  5. 使用 maxdecimaldigits 可能导致输出几何无效。为避免该问题,建议先使用 ST_ReducePrecision 并设置合适网格大小。
  6. GeoJSON 规范要求多边形采用右手定则定向;如需强制处理,可使用 ST_ForcePolygonCCW。规范还要求几何位于 WGS84 坐标系(SRID = 4326)中,必要时可使用 ST_Transform(geom, 4326)
  7. 该函数支持 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)