書式
SDO_GEOM.SDO_CONCAVEHULL_BOUNDARY( geom IN SDO_GEOMETRY, tol IN NUMBER, length IN NUMBER DEFAULT NULL ) RETURN SDO_GEOMETRY;
説明
アルファ・シェイプではなく境界点に基づいて、ジオメトリ・オブジェクトの凹型部分を表現するポリゴンタイプ・オブジェクトを戻します。
パラメータ
ジオメトリ・オブジェクト。
許容差(「許容差」を参照)。
凹型のサイズを制御するための値(具体的には、凹型の最長エッジがlength
値よりも短い場合は、凹型の計算が停止されます)。このため、length
値が大きければ大きいほど、凹型も大きくなる可能性があります。このパラメータを指定しない場合、「使用上の注意」で説明するとおり、計算は続行されます。
使用上の注意
凹型は、点の集合などの入力ジオメトリの領域を表現するポリゴンです。複雑な入力ジオメトリでは、通常、凹型は凸型の領域よりも非常に小さくなっています。
SDO_GEOM.SDO_CONCAVEHULLファンクションと同様に、このファンクションは、入力ジオメトリからすべての座標を取得し、デローニ三角分割の計算にそれらを使用します。ただしその後、凸型を計算し、境界エッジの長さに基づいて優先度キューにすべての境界エッジを入れ、(指定されたlength
パラメータ値によって停止されないかぎり、)形状が連結している単一のポリゴンであれば、1つずつエッジを削除します。1つのエッジが計算中に削除された場合、その三角形の他の2つのエッジが境界上にあります。
geom
が、頂点の数が3未満であるか、または直線上に存在する複数の点である場合は、例外が発生します。
測地データの場合、このファンクションは、近似処理によってサポートされます(「測地データでの近似処理によってサポートされるファンクション」を参照)。
例
次の例では、cola_c
の凹型部分のジオメトリ・オブジェクトを戻します。(例では、「空間データの挿入、索引付けおよび問合せの例」の定義およびデータを使用しています。)
-- Return the concave hull of a polygon. SELECT c.name, SDO_GEOM.SDO_CONCAVEHULL_BOUNDARY(c.shape, 0.005) FROM cola_markets c WHERE c.name = 'cola_c'; NAME -------------------------------- SDO_GEOM.SDO_CONCAVEHULL_BOUNDARY(C.SHAPE,0.005)(SDO_GTYPE, SDO_SRID, SDO_POINT( -------------------------------------------------------------------------------- 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))