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))