29.5 SDO_PC_PKG.CREATE_CONTOUR_GEOMETRIES

書式

SDO_PC_PKG.CREATE_CONTOUR_GEOMETRIES(
     pc                  IN SDO_PC, 
     sampling_resolution IN NUMBER, 
     elevations          IN SDO_ORDINATE_ARRAY, 
     region              IN SDO_GEOMETRY 
     ) RETURN SDO_GEOMETRY_ARRAY;

または

SDO_PC_PKG.CREATE_CONTOUR_GEOMETRIES(
     pc_flat_table       IN VARCHAR2,
     srid                IN NUMBER, 
     sampling_resolution IN NUMBER, 
     elevations          IN SDO_ORDINATE_ARRAY, 
     region              IN SDO_GEOMETRY 
     ) RETURN SDO_GEOMETRY_ARRAY;

または

SDO_PC_PKG.CREATE_CONTOUR_GEOMETRIES(
     pc                  IN SDO_PC, 
     sampling_resolution IN NUMBER, 
     elevations_min      IN NUMBER, 
     elevations_interval IN NUMBER, 
     elevations_max      IN NUMBER, 
     region              IN SDO_GEOMETRY 
     ) RETURN SDO_GEOMETRY_ARRAY;

または

SDO_PC_PKG.CREATE_CONTOUR_GEOMETRIES(
     pc_flat_table       IN VARCHAR2, 
     srid                IN SDO_PC, 
     sampling_resolution IN NUMBER, 
     elevations_min      IN NUMBER, 
     elevations_interval IN NUMBER, 
     elevations_max      IN NUMBER, 
     region              IN SDO_GEOMETRY 
     ) RETURN SDO_GEOMETRY_ARRAY;

説明

点群の輪郭線を生成します。

パラメータ

pc

輪郭線を生成する点群オブジェクトを指定します。

sampling_resolution

点群の座標参照系内のグリッド・セルの高さおよび幅を決定する数値を指定します。数値が小さいほど、結果の輪郭ジオメトリは詳細になります。

輪郭生成のプロセスはグリッドベースです。グリッド・セル内の点は平均化されます。これは次のことを意味します。

  • グリッド・セルが同じ平均となるかぎりは、少しだけ異なる2つの点群は同じ輪郭になる場合があります。

  • 輪郭線の頂点の数と円滑さは解像度に直接作用します。

elevations

輪郭を生成する標高の配列を指定します。

elevations_min

輪郭を生成する対象の等距離の標高のセット内の開始標高値。

elevations_interval

輪郭を生成する際、elevations_minelevations_maxの間の標高値に使用する間隔。

たとえば、elevations_minが100、elevations_maxが150、elevations_intervalが10の場合、標高100、110、120、130、140および150について輪郭が生成されます。

elevations_max

輪郭を生成する対象の等距離の標高のセット内の終了標高値。

region

輪郭を生成するリージョンを制限するウィンドウ(点群のエクステント内)を指定します。

使用上のノート

このファンクションは、SDO_GEOMETRY輪郭の配列を戻します。配列内の輪郭の順序は、elevations入力パラメータまたはelevations_minelevations_maxおよびelevations_interval入力パラメータに基づいて算出された値内の順序と同じです。個々の輪郭は複数線ストリングです。

より高い標高を含む輪郭は(外部の輪と同じ)反時計回りです。より低い標高を含む輪郭は(内部の輪と同じ)時計回りです。

点群を使用してソリッドをモデル化する方法は、「ソリッドのモデル化」を参照してください。

次の例では、指定した点群オブジェクトから輪郭線を作成します。

SELECT sdo_pc_pkg.create_contour_geometries(
  (SELECT pc FROM pcs WHERE pc_id = 1),
  sampling_resolution => 50,
  elevations => sdo_ordinate_array(100, 101, 102, 103, 104, 105, 106, 107, 108, 109),
  region => mdsys.sdo_geometry(2003, null, null, mdsys.sdo_elem_info_array(1, 1003, 3), mdsys.sdo_ordinate_array(-1000, 0, 999, 100)))
  FROM DUAL;

SDO_PC_PKG.CREATE_CONTOUR_GEOMETRIES((SELECTPCFROMPCSWHEREPC_ID=1),SAMPLING_RESO
--------------------------------------------------------------------------------
SDO_GEOMETRY_ARRAY(SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 5
, 2, 1), SDO_ORDINATE_ARRAY(-75.5, 24.5, -25.5, 74.5, 25.5, 74.5, 74.5, 25.5, 75
.5, 24.5)), SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 7, 2, 1)
, SDO_ORDINATE_ARRAY(-76.5, 24.5, -75.5, 25.5, -26.5, 74.5, 26.5, 74.5, 74.5, 26
.5, 76.5, 24.5)), SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 7,
 2, 1), SDO_ORDINATE_ARRAY(-77.5, 24.5, -75.5, 26.5, -27.5, 74.5, 27.5, 74.5, 74
.5, 27.5, 77.5, 24.5)), SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2,
 1, 7, 2, 1), SDO_ORDINATE_ARRAY(-78.5, 24.5, -75.5, 27.5, -28.5, 74.5, 28.5, 74
.5, 74.5, 28.5, 78.5, 24.5)), SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY
(1, 2, 1, 7, 2, 1), SDO_ORDINATE_ARRAY(-79.5, 24.5, -75.5, 28.5, -29.5, 74.5, 29
.5, 74.5, 74.5, 29.5, 79.5, 24.5)), SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO
_ARRAY(1, 2, 1, 7, 2, 1), SDO_ORDINATE_ARRAY(-80.5, 24.5, -75.5, 29.5, -30.5, 74
.5, 30.5, 74.5, 74.5, 30.5, 80.5, 24.5)), SDO_GEOMETRY(2002, NULL, NULL, SDO_ELE
M_INFO_ARRAY(1, 2, 1, 7, 2, 1), SDO_ORDINATE_ARRAY(-81.5, 24.5, -75.5, 30.5, -31
.5, 74.5, 31.5, 74.5, 74.5, 31.5, 81.5, 24.5)), SDO_GEOMETRY(2002, NULL, NULL, S
DO_ELEM_INFO_ARRAY(1, 2, 1, 7, 2, 1), SDO_ORDINATE_ARRAY(-82.5, 24.5, -75.5, 31.
5, -32.5, 74.5, 32.5, 74.5, 74.5, 32.5, 82.5, 24.5)), SDO_GEOMETRY(2002, NULL, N
ULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 7, 2, 1), SDO_ORDINATE_ARRAY(-83.5, 24.5, -75.
5, 32.5, -33.5, 74.5, 33.5, 74.5, 74.5, 33.5, 83.5, 24.5)), SDO_GEOMETRY(2002, N
ULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 7, 2, 1), SDO_ORDINATE_ARRAY(-84.5, 24.5
, -75.5, 33.5, -34.5, 74.5, 34.5, 74.5, 74.5, 34.5, 84.5, 24.5)))

1 row selected.