名前

ST_Dimension — ST_Geometry値の幾何次元を返します。

概要

integer ST_Dimension(geometry g);

説明

ジオメトリーの位相次元 (訳注: "topological dimension" と示されない箇所では「幾何次元」と言っています) を返します。ジオメトリーは座標次元以下でなければなりません。OGC SPEC s2.1.1.1 - 0なら POINT、1なら LINESTRING、2なら POLYGON で、GEOMETRYCOLLECTION の場合は要素ごとの次元の最大値です。不明なジオメトリー (空の GEOMETRYCOLLECTION 等) の場合はNULLが返ります。

このメソッドはSQL/MM仕様の実装です。 SQL-MM 3: 5.1.2

[注記]

TIN (TIN サーフェスを含む) は、サーフェスジオメトリーで次元は 2 です。立体表現を明示的にするには CG_MakeSolid を使います。この関数の結果は三次元の立体を返します。体積などの立体ジオメトリーの属性情報は SQL/MM 3次元立体関数 (SQL-MM IEC 13249-3: 9.1) で別途処理されます。

Enhanced: 2.0.0 多面体サーフェス対応とTIN対応が導入されました。空ジオメトリを与えた場合に例外を投げなくなりました。

[注記]

2.0.0より前では、空ジオメトリを与えると例外を投げていました。

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

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

コード
SELECT ST_Dimension('GEOMETRYCOLLECTION(LINESTRING(1 1,0 0), POINT(0 0))');
出力
1
Geometry figure for visual-st-dimension-01
コード
SELECT ST_Dimension('TIN Z (((0 0 0,0 0 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,0 0 1,0 0 0)),((1 0 0,0 1 0,0 0 1,1 0 0)))');
出力
2
Geometry figure for visual-st-dimension-02