ENVELOPE
📄字数 1.1K
👁️阅读量 加载中...
功能描述
以几何体的形式返回指定几何体的边界框。
语法格式
sql
GEOMETRY ENVELOPE(GEOMETRY g1);参数说明
- g1: 目标 GEOMETRY 对象;
函数返回类型
GEOMETRY 类型
使用说明
- 返回边界框的值类型为 DOUBLE 。
- 多边形由边界框的角点定义((MINX, MINY)、(MINX, MAXY)、(MAXX, MAXY)、(MAXX, MINY)、(MINX, MINY))。
- 退化情况(垂直线、点)将返回比 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.