表面には面積はあるものの、容積はありません。また、2次元または3次元を使用できます。表面は、通常、一連の平面領域で構成されます。
表面は、表面タイプのSDO_GEOMETRYオブジェクトとして、または表面が非常に大きい場合はSDO_TINオブジェクトとしてモデル化されます。SDO_GEOMETRYにおける表面タイプは、隣接する3次元ポリゴンによって境界となる連続領域を定義する不定形面の場合があります。SDO_GEOMETRY内のポリゴンの数は、SDO_ORDINATES_ARRAYに指定可能な座標の数によって制限されます。一方、SDO_TINオブジェクトの場合、表面は三角形網としてモデル化され、三角形の数に対する明示的な制限はありません。
表面は、三角形網として、Triangulated Irregular Network (TIN)と呼ばれる形式で格納されます。TINモデルでは、面は連続した重ならない三角形の集合として表現されます。各三角形の表面は、1つの平面で表現されます。三角形は質点と呼ばれる一連の点で構成されます。慎重に質点を選択した場合、TINでは表面のモデルが正確に表現されます。山の頂上、谷底、または崖の縁(頂上や底)など、表面の形状に大きな変化がある場所では、質点が適切に配置されます。
TINは通常、経度(x)、緯度(y)および標高(z)の各次元における座標値を指定する3次元の点を基に計算されます。OracleのTIN生成ソフトウェアでは、デローニ三角分割法が使用されますが、デローニ三角分割法のみを使用してTINデータを形成する必要はありません。
TINの一般的な操作手順は次のとおりです。
SDO_TIN_PKG.INITファンクションを使用して、TINを初期化します。
SDO_TIN_PKG.CREATE_TINプロシージャを使用して、TINを作成します。
問合せが必要な場合は、SDO_TIN_PKG.CLIP_TINファンクションを使用して、TINをクリップします。
必要に応じて、SDO_TIN_PKG.TO_GEOMETRYファンクションを使用します(たとえば、クリップ操作の結果を1つのSDO_GEOMETRYオブジェクトに変換する場合)。
TINの操作に使用するPL/SQLサブプログラムについては、「SDO_TIN_PKGパッケージ(TIN)」を参照してください。
JavaによるTINの操作の例は、次のファイルを参照してください。
$ORACLE_HOME/md/demo/TIN/examples/java/README.txt $ORACLE_HOME/md/demo/TIN/examples/java/readTIN.java