空間構築関数は、新しい空間データ型および幾何図形を構築するための関数です。
OceanBaseデータベースが現在サポートしている空間構築関数には、_ST_MakeEnvelope が含まれます。
_ST_MakeEnvelope
_ST_MakeEnvelope関数は、左下隅の座標と右上隅の座標を入力することで、長方形を構築します。この長方形は、空間クエリの境界ボックス(bounding box)としてよく使用されます。
構文は以下のとおりです:
_ST_MakeEnvelope(float xmin, float ymin, float xmax, float ymax, integer srid=unknown)
パラメータの説明:
float xmin:長方形の左下隅のx座標(通常は経度)を表します。float ymin:長方形の左下隅のy座標(通常は緯度)を表します。float xmax:長方形の右上隅のx座標(通常は経度)を表します。float ymax:長方形の右上隅のy座標(通常は緯度)を表します。integer srid:空間参照系の識別子(Spatial Reference System Identifier)。有効な識別子であり、座標に使用する空間参照系を指定するために使用されます。デフォルト値のunknownは、空間参照系を指定しないことを意味します。
使用制限:
- 座標値は有効でなければなりません。
xminはxmaxより小さく、yminはymaxより小さい必要があり、有効な長方形を形成するためにはこれらの条件を満たす必要があります。
例1は以下のとおりです:
obclient> SELECT ST_AsText(_ST_MakeEnvelope(10, 10, 11, 11, 4326));
この例では、左下隅の座標が(10, 10)で右上隅の座標が(11, 11)の長方形を作成しました。
実行結果は次のとおりです:
+-----------------------------------------------------+
| ST_AsText( _ST_MakeEnvelope(10, 10, 11, 11, 4326) ) |
+-----------------------------------------------------+
| POLYGON((10 10,11 10,11 11,10 11,10 10)) |
+-----------------------------------------------------+
1 row in set
例2は以下のとおりです:
obclient> SELECT ST_ASTEXT(_ST_ClipByBox2D(ST_GEOMFROMTEXT('POLYGON((-2 -2, -2 11, 11 11, 11 -2, -2 -2))'), _ST_MakeEnvelope(0,0,10,10)));
この例では、まず左下隅の座標が(0, 0)で右上隅の座標が(10, 10)の長方形をクリップ範囲として作成しました。次に、_ST_ClipByBox2D関数を使用して、元のポリゴンPOLYGON((-2 -2, -2 11, 11 11, 11 -2, -2 -2))を長方形でクリップします。
実行結果は次のとおりです:
+--------------------------------------------------------------------------------------------------------------------------+
| ST_ASTEXT(_ST_ClipByBox2D(ST_GEOMFROMTEXT('POLYGON((-2 -2, -2 11, 11 11, 11 -2, -2 -2))'), _ST_MakeEnvelope(0,0,10,10))) |
+--------------------------------------------------------------------------------------------------------------------------+
| POLYGON((0 0,0 10,10 10,10 0,0 0)) |
+--------------------------------------------------------------------------------------------------------------------------+
1 row in set