Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ENVELOPE

📄字数 1.1K
👁️阅读量 加载中...

功能描述

以几何体的形式返回指定几何体的边界框。

语法格式

sql
GEOMETRY ENVELOPE(GEOMETRY g1);

参数说明

  • g1: 目标 GEOMETRY 对象;

函数返回类型

GEOMETRY 类型

使用说明

  1. 返回边界框的值类型为 DOUBLE 。
  2. 多边形由边界框的角点定义((MINX, MINY)、(MINX, MAXY)、(MAXX, MAXY)、(MAXX, MINY)、(MINX, MINY))。
  3. 退化情况(垂直线、点)将返回比 POLYGON 更低维度的几何图形,即POINT 或LINESTRING。

示例

sql
SQL> SELECT ST_ASTEXT(ENVELOPE('POINT(1 3)'::GEOMETRY));

EXPR1 |
------------------------------------------------------------------------------
POINT(1 3)|

Total 1 records.


SQL> SELECT ST_ASTEXT(ENVELOPE('LINESTRING(0 0, 1 3)'::GEOMETRY));

EXPR1 |
------------------------------------------------------------------------------
POLYGON((0 0,0 3,1 3,1 0,0 0))|

Total 1 records.


SQL> SELECT ST_ASTEXT(ENVELOPE('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 0))'::GEOMETRY));

EXPR1 |
------------------------------------------------------------------------------
POLYGON((0 0,0 1,1.0000001 1,1.0000001 0,0 0))|

Total 1 records.


SQL> SELECT ST_ASTEXT(ENVELOPE('POLYGON((0 0, 0 1, 1.0000000001 1, 1.0000000001 0, 0 0))'::GEOMETRY));

EXPR1 |
------------------------------------------------------------------------------
POLYGON((0 0,0 1,1.0000000001 1,1.0000000001 0,0 0))|

Total 1 records.


SQL> SELECT BOX3D(geom), BOX2D(geom), ST_ASTEXT(ENVELOPE(geom)) As envelopewkt
            FROM (SELECT 'POLYGON((0 0, 0 1000012333334.34545678, 1.0000001 1, 1.0000001 0, 0 0))'::GEOMETRY As geom) As foo;

EXPR1 | EXPR2 | ENVELOPEWKT | 
------------------------------------------------------------------------------
BOX3D(0 0 0,1.0000001 1000012333334.3455 0)| BOX(0 0,1.0000001 1000012333334.3455)| POLYGON((0 0,0 1000012333334.3455,1.0000001 1000012333334.3455,1.0000001 0,0 0))|

Total 1 records.


-- 点和线串的最小外接矩形:
SQL> SELECT ST_ASTEXT(ENVELOPE(
                     ST_COLLECT(
                             ST_GEOMFROMTEXT('LINESTRING(55 75,125 150)'),
                                     ST_POINT(20, 80))
                                     )) As wktenv;

WKTENV |
------------------------------------------------------------------------------
POLYGON((20 75,20 150,125 150,125 75,20 75))|

Total 1 records.