- カテゴリ:
ST_ENVELOPE¶
指定された GEOGRAPHY または GEOMETRY オブジェクトを囲む最小の境界ボックス(長方形の「エンベロープ」)を返します。
構文¶
ST_ENVELOPE( <geography_or_geometry_expression> )
引数¶
geography_or_geometry_expression
引数の型は GEOGRAPHY または GEOMETRY にする必要があります。
戻り値¶
この関数は、入力オブジェクトの周囲の最小境界ボックスを表す型 GEOGRAPHY または GEOMETRY の値を返します。
使用上の注意¶
GEOGRAPHY オブジェクトで、
geography_expression
が、子午線弧(経線に沿った弧)を表す LineString の場合、 ST_ENVELOPE はその LineString を返します。geography_expression
が、赤道以外の緯線(緯線に沿った弧)上の弧を表す LineString の場合、 ST_ENVELOPE は弧の境界ボックスを表すポリゴンを返します。geography_expression
が単一のポイントの場合、 ST_ENVELOPE はそのポイントを返します。
GEOMETRY オブジェクトで、
退化する場合(例: 入力がポイント、または垂直線または水平線である場合)、関数はより低い次元のジオメトリ(つまり、ポイントまたは LineString)を返す可能性があります。
GEOMETRY オブジェクトの場合、返された GEOMETRY オブジェクトは入力と同じ SRID を持ちます。
例¶
GEOGRAPHY 例¶
次の例では、ポリゴンの最小境界ボックスを返します。
SELECT ST_ENVELOPE( TO_GEOGRAPHY( 'POLYGON((-122.306067 37.55412, -122.32328 37.561801, -122.325879 37.586852, -122.306067 37.55412))' ) ) as minimum_bounding_box_around_polygon; +-----------------------------------------------------------------------------------------------------------------------+ | MINIMUM_BOUNDING_BOX_AROUND_POLYGON | |-----------------------------------------------------------------------------------------------------------------------| | POLYGON((-122.325879 37.55412,-122.306067 37.55412,-122.306067 37.586852,-122.325879 37.586852,-122.325879 37.55412)) | +-----------------------------------------------------------------------------------------------------------------------+
次の例では、子午線弧を表す LineString を渡します。関数は、Polygonではなく同じ LineString を返します。
SELECT ST_ENVELOPE( TO_GEOGRAPHY( 'LINESTRING(-122.32328 37.561801, -122.32328 37.562001)' ) ) as minimum_bounding_box_around_meridian_arc; +-------------------------------------------------------+ | MINIMUM_BOUNDING_BOX_AROUND_MERIDIAN_ARC | |-------------------------------------------------------| | LINESTRING(-122.32328 37.561801,-122.32328 37.562001) | +-------------------------------------------------------+
次の例では、赤道ではない緯線上の弧を表す LineString を渡します。この関数は、境界ボックスを表すポリゴンを返します。
SELECT ST_ENVELOPE( TO_GEOGRAPHY( 'LINESTRING(-122.32328 37.561801,-122.32351 37.561801)' ) ) as minimum_bounding_box_around_arc_along_parallel; +---------------------------------------------------------------------------------------------------------------------+ | MINIMUM_BOUNDING_BOX_AROUND_ARC_ALONG_PARALLEL | |---------------------------------------------------------------------------------------------------------------------| | POLYGON((-122.32351 37.561801,-122.32328 37.561801,-122.32328 37.561801,-122.32351 37.561801,-122.32351 37.561801)) | +---------------------------------------------------------------------------------------------------------------------+
次の例では、単一のポイントを渡します。関数は同じポイントを返します。
SELECT ST_ENVELOPE( TO_GEOGRAPHY( 'POINT(-122.32328 37.561801)' ) ) as minimum_bounding_box_around_point; +-----------------------------------+ | MINIMUM_BOUNDING_BOX_AROUND_POINT | |-----------------------------------| | POINT(-122.32328 37.561801) | +-----------------------------------+