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_min
とelevations_max
の間の標高値に使用する間隔。たとえば、
elevations_min
が100、elevations_max
が150、elevations_interval
が10の場合、標高100、110、120、130、140および150について輪郭が生成されます。 - elevations_max
-
輪郭を生成する対象の等距離の標高のセット内の終了標高値。
- region
-
輪郭を生成するリージョンを制限するウィンドウ(点群のエクステント内)を指定します。
使用上のノート
このファンクションは、SDO_GEOMETRY輪郭の配列を戻します。配列内の輪郭の順序は、elevations
入力パラメータまたはelevations_min
、elevations_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.
親トピック: SDO_PC_PKGパッケージ(点群)