25.9 SDO_GEOM.SDO_CONCAVEHULL
書式
SDO_GEOM.SDO_CONCAVEHULL( geom IN SDO_GEOMETRY, tol IN NUMBER ) RETURN SDO_GEOMETRY;
または
SDO_GEOM.SDO_CONCAVEHULL( geom IN SDO_GEOMETRY, tol IN NUMBER, radius OUT NUMBER ) RETURN SDO_GEOMETRY;
または
SDO_GEOM.SDO_CONCAVEHULL( geom IN SDO_GEOMETRY_ARRAY, tol IN NUMBER ) RETURN SDO_GEOMETRY;
または
SDO_GEOM.SDO_CONCAVEHULL( geom IN SDO_GEOMETRY_ARRAY, tol IN NUMBER, radius OUT NUMBER ) RETURN SDO_GEOMETRY;
説明
ジオメトリ・オブジェクトまたはジオメトリ・オブジェクトの配列の凹型部分を表現するポリゴンタイプ・オブジェクトを戻します。
パラメータ
- geom
-
ジオメトリ・オブジェクト(SDO_GEOMETRY型)またはジオメトリ・オブジェクトの配列(SDO_GEOMETRY_ARRAY型で、
VARRAY OF SDO_GEOMETRY
として定義)。 - tol
-
許容差(「許容差」を参照)。
- radius
-
凹型の計算時に(デローニ三角分割を使用して)内部的に作成される、三角形の外接円の半径を格納するための出力パラメータ。
使用上のノート
凹型は、点の集合などの入力ジオメトリの領域を表現するポリゴンです。複雑な入力ジオメトリでは、通常、凹型は凸型の領域よりも非常に小さくなっています。
このファンクションは、入力ジオメトリからすべての座標を取得し、それらを使用してデローニ三角分割を実行して、凹型を計算します。外部の輪のみを戻します。内部の輪は無視されます。
このファンクションでは、凹型の計算時にアルファ・シェイプを使用します。これに対し、SDO_GEOM.SDO_CONCAVEHULL_BOUNDARYファンクションでは、外側の境界点を使用します。
radius
パラメータを含む形式は、SDO_GEOM.SDO_ALPHA_SHAPEファンクションをコールする場合に役立つradius値を戻します。
geom
が、頂点の数が3未満であるか、または直線上に存在する複数の点である場合は、例外が発生します。
測地データの場合、このファンクションは、近似処理によってサポートされます(「測地データでの近似処理によってサポートされるファンクション」を参照)。
例
次の例では、cola_c
の凹型部分のジオメトリ・オブジェクトを戻します。(例では、「空間データの挿入、索引付けおよび問合せの例」の定義およびデータを使用しています。
-- Return the concave hull of a polygon. SELECT c.name, SDO_GEOM.SDO_CONCAVEHULL(c.shape, 0.005) FROM cola_markets c WHERE c.name = 'cola_c'; NAME -------------------------------- SDO_GEOM.SDO_CONCAVEHULL(C.SHAPE,0.005)(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), -------------------------------------------------------------------------------- cola_c SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR AY(6, 3, 6, 5, 4, 5, 3, 3, 6, 3))
次の例では、3つのジオメトリ・オブジェクトの配列の凹型部分であるジオメトリを戻します。
SELECT sdo_geom.sdo_concavehull(SDO_GEOMETRY_ARRAY( SDO_GEOMETRY(2005, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 4), SDO_ORDINATE_ARRAY(6, 3, 6, 5, 4, 5, 3, 3)), SDO_GEOMETRY(2005, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 4), SDO_ORDINATE_ARRAY(16, 13, 16, 15, 14, 15, 13, 13)), SDO_GEOMETRY(2005, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 4), SDO_ORDINATE_ARRAY(26, 23, 26, 25, 24, 25, 23, 23))), 0.000005) FROM dual; SDO_GEOM.SDO_CONCAVEHULL(SDO_GEOMETRY_ARRAY(SDO_GEOMETRY(2005,NULL,NULL,SDO_ELEM -------------------------------------------------------------------------------- SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR AY(6, 3, 6, 5, 16, 13, 16, 15, 26, 23, 26, 25, 24, 25, 23, 23, 14, 15, 13, 13, 4 , 5, 3, 3, 6, 3))
親トピック: SDO_GEOMパッケージ(ジオメトリ)