プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

27.7 SDO_PC_PKG.INIT

書式

SDO_PC_PKG.INIT(
     basetable          IN VARCHAR2, 
     basecol            IN VARCHAR2, 
     blktable           IN VARCHAR2, 
     ptn_params         IN VARCHAR2, 
     pc_extent          IN SDO_GEOMETRY, 
     pc_tol             IN NUMBER DEFAULT 0.0000000000005, 
     pc_tot_dimensions  IN NUMBER DEFAULT 2, 
     pc_domain          IN SDO_ORGSCL_TYPE DEFAULT NULL, 
     pc_val_attr_tables IN SDO_STRING_ARRAY DEFAULT NULL, 
     pc_other_attrs     IN XMLTYPE DEFAULT NULL, 
     ) RETURN SDO_PC;

説明

SDO_PCオブジェクトの作成により点群を初期化します。

パラメータ

basetable

SDO_PC型の列を含む実表の名前を指定します。

basecol

実表のSDO_PC型の列名を指定します。

blktable

点群のブロックを格納するために使用する、点群ブロック表の名前を指定します。この表は存在している必要があり、またCREATE TABLE <table-name> AS select * from mdsys.sdo_pc_blk_table;形式の文によって作成されている必要があります。

各点群ブロック表に関連付けることのできるbasetablebasecolの組合せは1つのみです。

ptn_params

点群のパーティション化に関するパラメータを指定します。カンマで区切られたキーワードを引用符で囲んだ文字列で指定します。たとえば、'blk_capacity=1000,work_tablespace=my_work_ts'などです。このパラメータがNULLの場合、点群はパーティション化されません。使用可能なキーワードは、次のとおりです。

  • blk_capacity=n: nは各パーティション内の最大行数です。デフォルト値は5000です。この値には、常に50より大きい数字を指定します。

  • work_tablespace=x: xは、パーティション操作中に一時表を作成する表領域の名前です。

pc_extent

点群の空間エクステント(点群に含まれるすべてのオブジェクトを囲む最小境界オブジェクト)を表すSDO_GEOMETRYオブジェクトを指定します。このパラメータはnullであってはならない。

測地データの場合、このジオメトリは2つの次元を持つ必要があります。測地データ以外の場合は、最大で4つの次元を持つことができます。このジオメトリの次元は、pc_tot_dimensionsパラメータで使用できる最小値として使用されます(このパラメータの説明を参照)。

pc_tol

点群のオブジェクトの許容差を指定します。(空間許容差の詳細は、1.5.5項を参照してください。)このパラメータがNULLの場合、デフォルト値は0.0000000000005です。

pc_tot_dimensions

点群オブジェクトの総次元を指定する数字を指定します。点群ブロックの各点については、pc_tot_dimensions座標(値)が格納されます。

総次元は、pc_extentジオメトリの次元数である索引次元以上に指定する必要があります。総次元を索引次元より大きく指定すると、空間データと同じフェッチ操作で必要な非空間属性を取得できます。総次元の最大値は8です。このパラメータのデフォルト値は2です。

pc_domain

(現在は使用されていません)

pc_val_attr_tables

点群の値属性表の名前を指定するSDO_STRING_ARRAYオブジェクトを指定します。このパラメータがNULLの場合、点群に関連付けられる値属性表はありません。SDO_STRING_ARRAY型は、VARRAY(1048576) OF VARCHAR2(32)として定義されます。

pc_other_attrs

点群のその他の属性を指定するXMLTYPEオブジェクトを指定します。このパラメータがNULLの場合、点群はその他の属性を持ちません。

「使用上の注意」の説明のように、このパラメータは、点群のピラミッド化にメタデータを含めることができます。

使用上の注意

このファンクションを使用してSDO_PCオブジェクトを初期化した後は、このオブジェクトをSDO_PC_PKG.CREATE_PCプロシージャへの入力として指定することにより点群を作成できます。

SDO_PCデータ型の詳細は、「TINに関連するオブジェクト型」を参照してください。

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

このファンクションを使用した後、blktable表は実表と同期された状態で維持されます。たとえば、実表から行を削除すると、その行の対応する点群オブジェクトのブロックもブロック表から削除され、実表が切り捨てられると、ブロック表も切り捨てられます。

ブロック表を削除できるのは、実表が削除された場合か、またはSDO_PC_PKG.DROP_DEPENDENCIESプロシージャが実行された場合のみです。

pc_other_attrsパラメータは、次の例のように点群のピラミッド化のメタデータを指定するために使用できます。

xmltype(
 '<opc:sdoPcObjectMetadata
    xmlns:opc="http://xmlns.oracle.com/spatial/vis3d/2011/sdovis3d.xsd"
    xmlns:las="http://liblas.org/schemas/LAS/1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <opc:sdoPcPyramid preserveLevel1="true"/>
  </opc:sdoPcObjectMetadata>')

次の文を入力すると、pc_other_attrsパラメータのXMLスキーマ定義(XSD)が表示されます。

SET LONG 40000
SELECT xmlschema FROM sdo_xml_schemas WHERE description = 'EPSG  sdo3d.xsd';

点群のピラミッド化は、レベル1 (リーフ)からレベルn (ルート)までの複数のピラミッド・レベルを作成します。通常、レベルiに格納されている点は、より詳細なレベルのいずれでも繰り返されることはありません。すべての点は、正確に1回物理的に格納されます。リーフ・レベル1は、preserveLevel1="true"(前述の例を参照)を指定することで、このルールから除外できるので、ピラミッド化に準拠していないアプリケーションには適用する必要ありません。ただし、このpreserveLevel1="true"オプション(除外されるのでレベル1を維持)では、各点が2回格納(ルート・レベルで1回とピラミッドの残りで1回)されるので、2倍の領域が必要になります。

次の例では、SDO_PCオブジェクトを作成することによって点群を初期化し、オブジェクトのIDを表示します。これは、Oracle Database Examplesメディアからすでにファイルをインストールしている場合は、$ORACLE_HOME/md/demo/PointCloud/examples/plsql/pc.sqlから取得できます(『Oracle Database Examplesインストレーション・ガイド』を参照)。

. . .
declare
  pc sdo_pc;
begin
  -- Initialize the point cloud object. 
  pc := sdo_pc_pkg.init(
          'BASE', -- Table that has the SDO_POINT_CLOUD column defined
          'PC',   -- Column name of the SDO_POINT_CLOUD object 
          'BLKTAB', -- Table to store blocks of the point cloud
          'blk_capacity=1000', -- max # of points per block 
          mdsys.sdo_geometry(2003, 8307, null,
              mdsys.sdo_elem_info_array(1,1003,3),
              mdsys.sdo_ordinate_array(-180, -90, 180, 90)),  -- Extent 
              0.5, -- Tolerance for point cloud
              3, -- Total number of dimensions
              null);
. . .