名前

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はバウンディングボックスを各軸に沿って拡張する点は異なります。

単位はSRIDで示されている空間参照系の単位です。

[注記]

1.3より前の版では、ST_Expandは、インデックス可能な距離クエリを行うためにST_Distanceと併用されていました。例えばthe_geom && ST_Expand('POINT(10 20)', 10) AND ST_Distance(the_geom, 'POINT(10 20)') < 10としていました。これは、より簡単なST_DWithinに置き換えられました。

[注記]

Availability: 1.5.0 出力をfloat4座標値から倍精度に変更しました。

Enhanced: 2.0.0 多面体サーフェス対応、三角対応、TIN対応が導入されました。

Enhanced: 2.3.0 異なる次元の異なる量によるボックスの拡張に対応するようになりました。

This function supports Polyhedral surfaces.

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

[注記]

次に示す例では、メートル単位の投影法である米国ナショナルアトラス正積図法 (SRID=2163)を使っています。

-- ラインストリングのボックスを10メートル拡張したボックス
SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 110701,2312892 110714)', 2163),10) As box2d);
                                         st_expand
------------------------------------
 BOX(2312882 110666,2312990 110724)

-- 3次元ボックスを10メートル拡張した3次元ボックス
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メートル拡張したジオメトリの文字列表現
 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))

                

関連情報

ST_AsEWKT, ST_Buffer, ST_DWithin, ST_GeomFromEWKT, ST_GeomFromText, ST_SRID