ST_Expand — 返回从另一个边界框或几何体扩展的边界框。
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);
返回从输入的边界框扩展的边界框,可以通过指定一个单个距离来在两个轴上扩展框,或者通过为每个轴指定一个扩展距离。使用双精度。可用于距离查询,或者将边界框过滤器添加到查询中以利用空间索引。
除了接受和返回几何体的 ST_Expand 版本之外,还提供了接受和返回 box2d 和 box3d 数据类型的变体。
距离单位与输入的空间参考系统的单位相同。
ST_Expand 类似于 ST_Buffer,但缓冲是在所有方向上扩展几何体,而 ST_Expand 是沿着每个轴扩展边界框。
|
|
|
在 1.3 版本之前,ST_Expand 与 ST_Distance 结合使用,以进行可索引的距离查询。例如, |
可用性:1.5.0 版本行为已更改为输出双精度而不是 float4 坐标。
增强功能:2.0.0 引入了对多面体表面、三角形和 TIN 的支持。
增强功能:2.3.0 添加了在不同维度上按不同量扩展框的支持。
此函数支持多面体表面。
此函数支持三角形和三角不规则网络表面 (TIN)。
|
|
|
以下示例使用美国国家地图集等面积(SRID=2163),这是一个米投影 |
--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))