ここでは、Triangulated Irregular Network(TIN)のサポートに関連する次のオブジェクト型について説明します。
SDO_TIN
SDO_TIN_BLK_TYPE
SDO_TIN_BLK
TINの記述は、ユーザーが定義した表のSDO_TINオブジェクト型の1列に、1行で格納されます。SDO_TINオブジェクト型の定義は次のとおりです。
CREATE TYPE sdo_tin AS OBJECT (base_table VARCHAR2(70), base_table_col VARCHAR2(1024), tin_id NUMBER. blk_table VARCHAR2(70), ptn_params VARCHAR2(1024), tin_extent SDO_GEOMETRY, tin_tol NUMBER, tin_tot_dimensions NUMBER, tin_domain SDO_ORGSCL_TYPE, tin_break_lines SDO_GEOMETRY, tin_stop_lines SDO_GEOMETRY, tin_void_rgns SDO_GEOMETRY, tin_val_attr_tables SDO_STRING_ARRAY, tin_other_attrs XMLTYPE);
SDO_TIN型には、表2-4に示す属性が含まれます。
表2-4 SDO_TIN型の属性
属性 | 説明 |
---|---|
BASE_TABLE |
SDO_TIN型の列を含む実表の名前。 |
BASE_TABLE_COL |
実表のSDO_TIN型の列の名前。 |
TIN_ID |
TINのID番号。(この一意のID番号はSpatial and Graphによって生成されます。このID番号は、型SDO_TINの列を含む実表のスキーマ内で一意です。) |
BLK_TABLE |
TINの各ブロックに関する情報を含む表の名前。この表に含まれる列を、表2-5に示します。 |
PTN_PARAMS |
TINを分割するためのパラメータ。 |
TIN_EXTENT |
TINの空間エクステント(TINに含まれるすべてのオブジェクトを囲む最小境界オブジェクト)を表すSDO_GEOMETRYオブジェクト。 |
TIN_TOL |
TIN内のオブジェクトの許容差。(空間許容差の詳細は、「許容差」を参照してください。) |
TIN_TOT_DIMENSIONS |
TINの総次元数。空間次元および非空間次元が含まれます(最大値は9)。 |
TIN_DOMAIN |
(現在は使用されていません) |
TIN_BREAK_LINES |
(現在は使用されていません) |
TIN_STOP_LINES |
(現在は使用されていません) |
TIN_VOID_RGNS |
(現在は使用されていません) |
TIN_VAL_ATTR_TABLES |
TINの値属性表の名前を指定するSDO_STRING_ARRAYオブジェクトを指定します。SDO_STRING_ARRAY型は、 |
TIN_OTHER_ATTRS |
TINのその他の属性を指定するXMLTYPEオブジェクトを指定します。詳細は、SDO_TIN_PKG.INITファンクションの「使用上の注意」を参照してください。 |
図2-2に、TINデータの記憶域モデルを示します。このモデルでは、(SDO_TIN型のBLK_TABLE属性で指定した)TINブロック表にSDO_TINオブジェクトに関連付けられたブロックが格納されます。
TINブロック表には、表2-5に示す列が含まれます。
表2-5 TINブロック表の列
列名 | データ型 | 用途 |
---|---|---|
BLK_ID |
NUMBER |
ブロックのID番号。 |
BLK_EXTENT |
SDO_GEOMETRY |
ブロックの空間エクステント。 |
BLK_DOMAIN |
SDO_ORGSCL_TYPE |
(現在は使用されていません) |
PCBLK_MIN_RES |
NUMBER |
点群データの場合は、問合せ時にブロックを可視化できる解像度の最小レベルです。問合せウィンドウがブロックの空間エクステントと重なる場合に、ブロックの最小から最大までの解像度幅が問合せの最小から最大までの解像度幅と重なる場合のみ、ブロックが取得されます。通常、小さい値ほどビュー・ポイントから離れており、高い値ほどビュー・ポイントに近いことを示します。 |
PCBLK_MAX_RES |
NUMBER |
点群データの場合は、問合せ時にブロックを可視化できる解像度の最大レベルです。問合せウィンドウがブロックの空間エクステントと重なる場合に、ブロックの最小から最大までの解像度幅が問合せの最小から最大までの解像度幅と重なる場合のみ、ブロックが取得されます。通常、小さい値ほどビュー・ポイントから離れており、高い値ほどビュー・ポイントに近いことを示します。 |
NUM_POINTS |
NUMBER |
点群データの場合は、POINTS BLOBに含まれる点の総数。 |
NUM_UNSORTED_POINTS |
NUMBER |
点群データの場合は、POINTS BLOB内のソートされていない点の数。 |
PT_SORT_DIM |
NUMBER |
点群データの場合は、点の空間次元数(2または3)。 |
POINTS |
BLOB |
点群データの場合は、点を含むBLOB。点ごとに次の情報を持つ点の配列で構成されます。
|
TR_LVL |
NUMBER |
(現在は使用されていません) |
TR_RES |
NUMBER |
(現在は使用されていません) |
NUM_TRIANGLES |
NUMBER |
TRIANGLES BLOBに含まれる三角形の数。 |
TR_SORT_DIM |
NUMBER |
(現在は使用されていません) |
TRIANGLES |
BLOB |
三角形を含むBLOB。ブロックの三角形の配列で構成されます。
|
TINブロック表のPOINTS列の各BLOBは、次のとおりです。
合計サイズは(tdim+1)×8です。tdimは各ブロックの合計次元数です。
合計サイズは、5MB未満(Oracle Databaseリリース11.1.0.6以下の場合)または12MB未満(Oracle Databaseリリース11.1.0.7以上の場合)である必要があります。
属性名は、SDO_TIN型のオブジェクトに対する問合せで使用できます。例2-4に、LANDSCAPESという架空の表に含まれるTERRAIN列のTIN_EXTENT属性を問い合せるSELECT文の一部を示します。
例2-4 SDO_TINの属性の問合せ
SELECT l.terrain.tin_extent FROM landscapes l WHERE ...;
SDO_TIN_PKG.CLIP_TINファンクションを使用してクリップ操作を実行する場合、SDO_TIN_BLK_TYPE型のオブジェクトが戻されます。このオブジェクトはTABLE OF SDO_TIN_BLK
として定義されます。
SDO_TIN_BLKオブジェクト型の属性は、TINブロック表に含まれる列と同じです(TINブロック表については、「SDO_TIN_BLK_TYPEオブジェクト型およびSDO_TIN_BLKオブジェクト型」の表2-5を参照)。