From: Regina Obe Date: Tue, 16 Sep 2008 13:17:08 +0000 (+0000) Subject: Move over ST_Expand X-Git-Tag: 1.4.0b1~739 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f37b673da7ab4871ee3d09afbd11098daef93484;p=postgis Move over ST_Expand git-svn-id: http://svn.osgeo.org/postgis/trunk@2968 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/doc/reference.xml b/doc/reference.xml index b6593cac3..b0740e0fa 100644 --- a/doc/reference.xml +++ b/doc/reference.xml @@ -1529,17 +1529,6 @@ WHERE n*100.00/length < 1; - - ST_expand(geometry, float) - - - This function returns a bounding box expanded in all - directions from the bounding box of the input geometry, by an - amount specified in the second argument. Very useful for - distance() queries, to add an index filter to the query. - - - ST_estimated_extent([schema], table, geocolumn) diff --git a/doc/reference_new.xml b/doc/reference_new.xml index 7cf201b5d..9a9a7da5b 100644 --- a/doc/reference_new.xml +++ b/doc/reference_new.xml @@ -3458,7 +3458,7 @@ F000000000000000000000000000000000000000000000000'); Operators -   + @@ -4107,6 +4107,13 @@ SELECT ST_Disjoint('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::geometry); comparison that will make use of any indexes that are available on the geometries. + + + Prior to 1.3, ST_Expand was commonly used in conjunction with && and ST_Distance to + achieve the same effect and in pre-1.3.4 this function was basically short-hand for that construct. + From 1.3.4, ST_DWithin uses a more short-circuit distance function which should make it more efficient + than prior versions for larger buffer regions. + @@ -4142,7 +4149,7 @@ SELECT s.gid, s.school_name See Also - + , @@ -4935,17 +4942,100 @@ FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 2)'), 10) As smallc, Linear Referencing -   + Long Transactions Support -   + - Misc -   + Misc + + + + ST_Expand + Returns bounding box expanded in all directions from the bounding box of the input geometry + + + + + + geometry ST_Expand + geometry g1 + float units_to_expand + + + + box2d ST_Expand + box2d g1 + float units_to_expand + + + + box3d ST_Expand + box3d g1 + float units_to_expand + + + + + + Description + + This function returns a bounding box expanded in all + directions from the bounding box of the input geometry, by an + amount specified in the second argument. Very useful for + distance() queries, or bounding box queries to add an index filter to the query. + There are 3 variants of this. The one that takes a geometry will return a POLYGON geometry representation + of the bounding box and is the most commonly used variant. + 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. + + + + Bounding boxes of all geometries are currently 2-d even if they are 3-dimensional geometries. + + + + + + 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)) + + + + + + See Also + , , , ,, + +