このトピックでは、ST_GeometryN関数について説明します。 この関数は、入力ジオメトリオブジェクトのN番目のオブジェクトを返します。
構文
geometry ST_GeometryN(geometry geomA , integer n);
パラメーター
パラメーター | 説明 |
geomA | 指定するジオメトリオブジェクト。 |
n | 取得するオブジェクトのインデックス番号。 |
説明
インデックス番号は 1 から始まります。
この関数は、GeometryCollectionオブジェクト、MultiPointオブジェクト、MultiLineStringオブジェクト、MultiCurveオブジェクト、MultiPolygonオブジェクト、および多面体サーフェスをサポートします。 別のタイプのジオメトリオブジェクトを指定した場合、この関数はNULLを返します。
入力ジオメトリオブジェクトのすべてのジオメトリを抽出する場合は、ST_Dump関数を使用できます。これはより効率的で、さまざまなジオメトリオブジェクトをサポートします。
この関数は、円形ストリング、カーブ、多面体サーフェス、三角形、三角形不規則ネットワーク (TIN) サーフェス、および3Dオブジェクトをサポートします。
例
次のステートメントを実行して、MULTIオブジェクトを返します。
SELECT ST_AsText(ST_GeometryN('MULTIPOLYGON(((1 0,3 0,0 3,1 0)),((1 0,2 0, 0 2,1 0)))'::geometry,2)); st_astext ---------------------------- POLYGON((1 0,2 0,0 2,1 0)) (1 row)
次のステートメントを実行してGeometryCollectionオブジェクトを返します。
SELECT ST_AsText(ST_GeometryN('GeometryCollection(POINT(1 0),POLYGON((1 0,2 0, 0 2,1 0)))'::geometry,1)); st_astext ------------ POINT(1 0) (1 row)