ST_Envelope

Name

ST_Envelope — Returns a geometry representing the bounding box of a geometry.

Synopsis

``` geometry ST_Envelope ( ``` geometry g1 ``` ) ``` ;

Description

Returns the double-precision (float8) minimum bounding box for the supplied geometry, as a geometry. The polygon is defined by the corner points of the bounding box (( ``` MINX ``` , ``` MINY ``` ), ( ``` MINX ``` , ``` MAXY ``` ), ( ``` MAXX ``` , ``` MAXY ``` ), ( ``` MAXX ``` , ``` MINY ``` ), ( ``` MINX ``` , ``` MINY ``` )). (PostGIS will add a ``` ZMIN ``` / ``` ZMAX ``` coordinate as well).

Degenerate cases (vertical lines, points) will return a geometry of lower dimension than ``` POLYGON ``` , ie. ``` POINT ``` or ``` LINESTRING ``` .

Availability: 1.5.0 behavior changed to output double precision instead of float4

This method implements the OpenGIS Simple Features Implementation Specification for SQL 1.1. s2.1.1.1

This method implements the SQL/MM specification. SQL-MM 3: 5.1.15

Examples

```SELECT ST_AsText(ST_Envelope('POINT(1 3)'::geometry));
st_astext
------------
POINT(1 3)
(1 row)

SELECT ST_AsText(ST_Envelope('LINESTRING(0 0, 1 3)'::geometry));
st_astext
--------------------------------
POLYGON((0 0,0 3,1 3,1 0,0 0))
(1 row)

SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000001 1, 1.0000001 0, 0 0))'::geometry));
st_astext
--------------------------------------------------------------
POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))
(1 row)
SELECT ST_AsText(ST_Envelope('POLYGON((0 0, 0 1, 1.0000000001 1, 1.0000000001 0, 0 0))'::geometry));
st_astext
--------------------------------------------------------------
POLYGON((0 0,0 1,1.00000011920929 1,1.00000011920929 0,0 0))
(1 row)

SELECT Box3D(geom), Box2D(geom), ST_AsText(ST_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;

```

Envelope of a point and linestring.

```SELECT ST_AsText(ST_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))```