# ST_Expand

## Name

ST_Expand — Returns bounding box expanded in all directions from the bounding box of the input geometry. Uses double-precision

## Synopsis

``` geometry ST_Expand ( ``` geometry geom , float units_to_expand ``` ) ``` ;

``` geometry ST_Expand ( ``` geometry geom , float dx , float dy , float dz=0 , float dm=0 ``` ) ``` ;

``` box2d ST_Expand ( ``` box2d box , float units_to_expand ``` ) ``` ;

``` box2d ST_Expand ( ``` box2d box , float dx , float dy ``` ) ``` ;

``` box3d ST_Expand ( ``` box3d box , float units_to_expand ``` ) ``` ;

``` box3d ST_Expand ( ``` box3d box , float dx , float dy , float dz=0 ``` ) ``` ;

## Description

This function returns a bounding box expanded from the bounding box of the input, either by specifying a single distance with which the box should be expanded in all directions, or by specifying an expansion distance for each direction. Uses double-precision. Can be very useful for distance queries, or to add a bounding box filter to a query to take advantage of a spatial index.

In addition to the geometry version of ST_Expand, which is the most commonly used, variants are provided that accept and produce internal BOX2D and BOX3D data types.

ST_Expand is similar in concept to ST_Buffer, except while buffer expands the geometry in all directions, ST_Expand expands the bounding box an x,y,z unit amount.

Units are in the units of the spatial reference system in use denoted by the SRID.

 Pre 1.3, ST_Expand was used in conjunction with distance to do indexable queries. Something of the form ``` the_geom && ST_Expand('POINT(10 20)', 10) AND ST_Distance(the_geom, 'POINT(10 20)') < 10 ``` Post 1.2, this was replaced with the easier ST_DWithin construct.
 Availability: 1.5.0 behavior changed to output double precision instead of float4 coordinates. Enhanced: 2.0.0 support for Polyhedral surfaces, Triangles and TIN was introduced. Enhanced: 2.3.0 support was added to expand a box by different amounts in different dimensions.

This function supports Polyhedral surfaces.

This function supports Triangles and Triangulated Irregular Network Surfaces (TIN).

## Examples

 Examples below use US National Atlas Equal Area (SRID=2163) which is a meter projection
```
--10 meter expanded box around bbox of a linestring
SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 110701,2312892 110714)', 2163),10) As box2d);
st_expand
------------------------------------
BOX(2312882 110666,2312990 110724)

--10 meter expanded 3d box of a 3d box
SELECT ST_Expand(CAST('BOX3D(778783 2951741 1,794875 2970042.61545891 10)' As box3d),10)
st_expand
-----------------------------------------------------
BOX3D(778773 2951731 -9,794885 2970052.61545891 20)

--10 meter geometry astext rep of a expand box around a point geometry
SELECT ST_AsEWKT(ST_Expand(ST_GeomFromEWKT('SRID=2163;POINT(2312980 110676)'),10));
st_asewkt
-------------------------------------------------------------------------------------------------
SRID=2163;POLYGON((2312970 110666,2312970 110686,2312990 110686,2312990 110666,2312970 110666))

```