名前

ST_Expand — 入力ジオメトリのバウンディングボックスから全ての方向に拡張されたバウンディングボックスを返します。倍精度浮動小数点数を使います。

概要

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);

説明

この関数は、入力ジオメトリのバウンディングボックスから全ての方向に拡張されたバウンディングボックスを返します。拡張する量は第2引数で指定します。倍精度浮動小数点数を使います。ST_Distance()クエリやバウンディングボックスクエリでクエリにインデクスフィルタを追加する際によく使われます。

この関数には3つの形式があります。 ひとつめは、ジオメトリを取り、ポリゴンジオメトリ表現を返すもので、最も一般的な使用形式です。

ST_ExpandはST_bufferに概念的に似ていますが、バッファはジオメトリを全ての方向に拡張し、ST_Expandはバウンディングボックスをx,y,zの単位の量を拡張します。

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

[注記]

1.3より前は、ST_Expandは、インデクスを利用するクエリを実行するために、distanceと併せて使用されていました。形式はthe_geom && ST_Expand('POINT(10 20)', 10) AND ST_Distance(the_geom, 'POINT(10 20)') < 10となります。1.2以降は、より簡単なST_DWithinと入れ替えられました。

[注記]

全てのジオメトリのバウンディングボックスは、2次元ジオメトリであっても、現在は2次元になります。

[注記]

初出: 1.5.0でふるまいが変わり、float4座標値から倍精度になりました。

機能強化: 2.0.0では、多面体サーフェス、三角形、TINが導入されました。

この関数は多面体サーフェスに対応しています。

この関数は三角形と不規則三角網(TIN)に対応しています。

[注記]

次に示す例では、メートル単位の投影法である米国 National Atlas 正積図法(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メートル拡張
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メートル拡張したAsText表現
 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