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

前
次

1.11 3次元の空間オブジェクト

Oracle Spatial and Graphでは、3次元の空間データの格納および取出しがサポートされています(扱うことができる3次元空間データは、点、点群(点の集合)、線、ポリゴン、面、ソリッドなど)。表1-1に、3次元のジオメトリに該当するSDO_GEOMETRY型のSDO_GTYPE属性および要素に関連する属性を示します。(SDO_GEOMETRY型については、「SDO_GEOMETRYオブジェクト型」を参照してください。)

表1-1 3次元ジオメトリのSDO_GEOMETRY属性

3-Dデータのタイプ SDO_GTYPE 要素タイプ、SDO_ELEM_INFOでの解釈

3001

該当しません。SDO_POINT_TYPE属性に含まれる3次元の値をすべて指定します。

3002

2, 1

ポリゴン

3003

1003, 1: 平面の外部ポリゴン

2003, 1: 平面の内部ポリゴン

1003, 3: 平面の外部矩形

2003, 3: 平面の内部矩形

表面

3003

1006, 1:表面(次にポリゴンの要素情報が続きます)

コレクション

3004

2次元の場合と同様に扱われます

複数点(点群)

3005

1, n(nは点の数)

複数線

3006

2, 1 (線と同じ)

複数面

3007

1つ以上の表面の要素定義

ソリッド

3008

閉じられた1つの表面で形成される単純なソリッド: 1つの要素タイプ1007の後に、1つの要素タイプ1006(外部表面)が続き、オプションで1つ以上の要素タイプ2006(内部表面)が続きます。

隣接する複数の単純なソリッドで形成される複合ソリッド: 1つの要素タイプ1008(単純なソリッドの数を保持)の後に、任意の数の要素タイプ1007(それぞれが1つの単純なソリッド)が続きます。

マルチソリッド

3009

1つ以上の単純なソリッドの要素定義(要素タイプ1007)または複合ソリッド(要素タイプ1008)

次の空間演算子を使用する計算では、3次元すべてが使用されます。

他の演算子では、最初の2次元のみ使用されます。前述した演算子には、この項で後述するように、測地データを処理するときに高さの情報が無視されるものもあります。(空間演算子については、「空間演算子」を参照してください。)

SDO_GEOM.SDO_VOLUMEファンクションはソリッド・ジオメトリ(その名のとおり3次元のジオメトリ)にのみ適用されます。ただし、このファンクションを測地データで使用することはできません。(このファンクションの説明は、「SDO_GEOMパッケージ(ジオメトリ)」を参照してください。)その他のSDO_GEOMサブプログラムにおける3次元のジオメトリのサポートについては、表23-1に続く使用方法を参照してください。

3次元ジオメトリでの距離計算は次のように行われます。

どのファンクション、プロシージャまたは演算子でも3次元すべてを使用できるようにするには、地理3Dデータ(経度、緯度、楕円体高)を含む空間表に空間索引を作成する際に、CREATE INDEX文でPARAMETERS ('sdo_indx_dims=3')を指定する必要があります。このパラメータをCREATE INDEX文で指定しないと、2次元の索引が作成されます。

3次元すべてを使用する空間ファンクション、空間プロシージャおよび空間演算子では、距離および長さの計算は、高さ(標高)を適切に組み込んで行われます。たとえば、3次元の点が2つあり、1つの点はデカルト空間の基点(0,0,0)にあり、もう1つの点はY軸上のX=3の位置の、高さ(Z)が4の位置(3,0,4)にあるとします。

ただし、次の演算子およびサブプログラムでは、測地データを処理するときに、3次元ジオメトリでの距離が地上表現(たとえば、ビルの伏図の経度/緯度方向の広がり)で計算され、高さの情報は近似処理されます。

3次元データを使用した2次元問合せウィンドウでは、SDO_FILTER演算子は使用できますが、その他の空間演算子は使用できません。

様々なタイプの3次元空間ジオメトリの作成例は、「3次元のジオメトリ・タイプ」を参照してください。そこでは、3次元ジオメトリの空間メタデータの更新方法および空間索引の作成方法についても例を示しています。

3次元の座標参照系のサポートの詳細は、「3次元の座標参照系のサポート」を参照してください。

空間集計ファンクションおよびPL/SQLパッケージとサブプログラムの多くで、3次元はサポートされません。2次元ジオメトリのみがサポートされるものは次のとおりです。

表1-2では、Oracle Spatial and Graphで特定の測地3次元の計算を内部的に実行する方法について説明します。

表1-2 測地3次元の計算の実行方法

計算のタイプ 実行される内部計算

ANYINTERACT

入力ジオメトリがGnomonic変換を使用して変換された後、結果のジオメトリを使用してANYINTERACT関係が計算されます。

Area

入力ジオメトリがローカル交差平面に投影された後、結果の入力ジオメトリを使用して面積が計算されます。

DistanceまたはLength

2次元の正確な楕円体距離が、2つの最近点の経度と緯度を使用して計算された後、高さまたは長さの差が近似値を使用して含められます。

Volume

入力ジオメトリがローカル交差平面に投影された後、結果の入力ジオメトリを使用して容積が計算されます。