跳到主要内容
版本:V1.0.0

空间构造函数

空间构造函数用于构建新的空间数据类型和几何图形的函数。

seekdb 当前所支持的空间构造函数包括 _ST_MakeEnvelope

_ST_MakeEnvelope

_ST_MakeEnvelope 函数通过输入左下角坐标与右上角坐标,构造一个矩形,这个矩形常用作空间查询的边界框(bounding box)。

语法如下:

_ST_MakeEnvelope(float xmin, float ymin, float xmax, float ymax, integer srid=unknown)

参数释义:

  • float xmin:表示矩形左下角的 x 坐标(通常是经度)。
  • float ymin:表示矩形左下角的 y 坐标(通常是纬度)。
  • float xmax:表示矩形右上角的 x 坐标(通常是经度)。
  • float ymax:表示矩形右上角的 y 坐标(通常是纬度)。
  • integer srid:空间参照系统的标识符(Spatial Reference System Identifier),为有效标识符,用来指定坐标所使用的空间参考系统。默认值 unknown 表示不指定空间参照系统。

使用限制:

  • 坐标值必须有效。xmin 必须小于 xmax,且 ymin 必须小于 ymax,以构成一个有效的矩形。

示例 1 如下:

SELECT ST_AsText(_ST_MakeEnvelope(10, 10, 11, 11, 4326));

在这个示例中,创建了一个左下角坐标为 (10, 10) 和右上角坐标为 (11, 11) 的矩形。

返回结果如下:

+-----------------------------------------------------+
| ST_AsText( _ST_MakeEnvelope(10, 10, 11, 11, 4326) ) |
+-----------------------------------------------------+
| POLYGON((10 10,11 10,11 11,10 11,10 10)) |
+-----------------------------------------------------+
1 row in set (0.001 sec)

示例 2 如下:

SELECT ST_ASTEXT(_ST_ClipByBox2D(ST_GEOMFROMTEXT('POLYGON((-2 -2, -2 11, 11 11, 11 -2, -2 -2))'), _ST_MakeEnvelope(0,0,10,10)));

在这个示例中,首先创建了一个左下角坐标为 (0, 0) 和右上角坐标为 (10, 10) 的矩形作为裁剪范围。然后它使用 _ST_ClipByBox2D 函数将一个原始多边形 POLYGON((-2 -2, -2 11, 11 11, 11 -2, -2 -2)) 与矩形进行裁剪。

返回结果如下:

+--------------------------------------------------------------------------------------------------------------------------+
| ST_ASTEXT(_ST_ClipByBox2D(ST_GEOMFROMTEXT('POLYGON((-2 -2, -2 11, 11 11, 11 -2, -2 -2))'), _ST_MakeEnvelope(0,0,10,10))) |
+--------------------------------------------------------------------------------------------------------------------------+
| POLYGON((0 0,0 10,10 10,10 0,0 0)) |
+--------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.001 sec)