ST_GeomFromGeoJSON
ST_GeomFromGeoJSON 从输入几何体的 GeoJSON 表示形式构造几何体对象。有关 GeoJSON 格式的更多信息,请参阅 Wikipedia 中的 GeoJSON
如果至少有一个点具有三个或更多坐标,则生成的几何体为 3DZ,其中只有两个坐标的点的 Z 分量为零。如果输入 GeoJSON 中的所有点都包含两个坐标或为空,则 ST_GeomFromGeoJSON 将返回 2D 几何体。返回的几何体的空间参考标识符 (SRID) 始终为 4326。
语法
ST_GeomFromGeoJSON(geojson_string)
参数
- geojson_string
-
数据类型为
VARCHAR
的值或计算结果为VARCHAR
类型的表达式,即几何体的 GeoJSON 表示形式。
返回类型
GEOMETRY
如果 geojson_string 为 null,则返回 null。
如果 geojson_string 无效,则返回一个错误。
示例
以下 SQL 返回以输入 GeoJSON 表示的 2D 几何体。
SELECT ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"Point","coordinates":[1,2]}'));
st_asewkt
-----------------------
SRID=4326;POINT(1 2)
以下 SQL 返回以输入 GeoJSON 表示的 3DZ 几何体。
SELECT ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2,3],[4,5,6],[7,8,9]]}'));
st_asewkt
------------------------------------------
SRID=4326;LINESTRING Z (1 2 3,4 5 6,7 8 9)
当输入 GeoJSON 中只有一个点具有三个坐标,而所有其他点具有两个坐标时,以下 SQL 返回 3DZ 几何体。
SELECT ST_AsEWKT(ST_GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[0, 0],[0, 1, 8],[1, 0],[0, 0]]]}'));
st_asewkt
------------------------------------------------
SRID=4326;POLYGON Z ((0 0 0,0 1 8,1 0 0,0 0 0))