タイプ0 (ゼロ)要素は、Oracle Spatial and Graphでサポートされないジオメトリ・タイプ(曲線やスプラインなど)をモデル化するために使用します。タイプ0(ゼロ)要素のSDO_ETYPE値は0(ゼロ)です。(SDO_ETYPEについては、「SDO_ELEM_INFO」を参照。)タイプ0 (ゼロ)要素は、Oracle Spatial and Graphでは索引付けされず、空間ファンクションおよび空間プロシージャでは無視されます。
タイプ0(ゼロ)要素を使用するジオメトリは、0(ゼロ)以外の要素(SDO_ETYPE値が0(ゼロ)以外の要素)を1つ以上含む必要があります。0(ゼロ)以外の要素は、サポートされないジオメトリの近似値である必要があるため、次の両方の値を持つ必要があります。
Spatial and Graphでサポートされているジオメトリ・タイプに関連付けられたSDO_ETYPE値
そのSDO_ETYPE値に有効なSDO_INTERPRETATION値(表2-2を参照)
(タイプ0(ゼロ)要素のSDO_INTERPRETATION値には、任意の数値を指定できます。その値の妥当性および有効性は、アプリケーションが判断します。)
0 (ゼロ)以外の要素は、Spatial and Graphによって索引付けされ、空間索引によって戻されます。
タイプ0(ゼロ)要素を含むジオメトリのSDO_GTYPE値は、0(ゼロ)以外の要素のジオメトリ・タイプの値に設定する必要があります。
図2-9に、曲線(サポートされないジオメトリ)およびその曲線に近い矩形(0(ゼロ)以外の要素)の2つの要素を含むジオメトリを示します。曲線は文字「S」のように見え、矩形は破線で表されています。
図2-9に示すジオメトリの定義は、次のとおりです。
ジオメトリのSDO_GTYPE値は2003(2次元ポリゴンを示す)です。
SDO_ELEM_INFO配列には、この複合線ストリングに対して3つの値の組が2つ含まれます。たとえば、{(1,0,57), (11,1003,3)}という組が含まれているとします。その場合、次のようになります。
縦座標の開始オフセット(SDO_STARTING_OFFSET) | 要素タイプ(SDO_ETYPE) | 解釈(SDO_INTERPRETATION) |
---|---|---|
1 |
0 |
57 |
11 |
1003 |
3 |
この例では、
タイプ0(ゼロ)要素のSDO_ETYPE値は0(ゼロ)です。
0(ゼロ)以外の要素(矩形)のSDO_ETYPE値は1003です。これは、ポリゴンの外部の輪を示します。
縦座標x6はジオメトリの11番目の縦座標であるため、0(ゼロ)以外の要素のSDO_STARTING_OFFSET値は11です。
タイプ0(ゼロ)要素のSDO_INTERPRETATIONには、アプリケーション固有の値が指定されます。この例では、SDO_INTERPRETATION値は57です。
0 (ゼロ)以外の要素のSDO_INTERPRETATION値は、値が1003のSDO_ETYPEに対して有効な値です。この例では、SDO_INTERPRETATION値は3です。これは、2点(左下および右上)によって定義される矩形を示します。
例2-14に、タイプ0(ゼロ)要素を含むジオメトリ(図2-9に示すジオメトリに類似)をデータベースに挿入するSQL文を示します。このSDO_ORDINATE_ARRAY構造では、曲線は点(6,6)、(12,6)、(9,8)、(6,10)および(12,10)によって定義され、矩形は点(6,4)および(12,12)によって定義されています。
例2-14 タイプ0(ゼロ)要素を含むジオメトリを挿入するSQL文
INSERT INTO cola_markets VALUES( 13, 'type_zero_element_geom', SDO_GEOMETRY( 2003, -- two-dimensional polygon NULL, NULL, SDO_ELEM_INFO_ARRAY(1,0,57, 11,1003,3), -- 1st is type 0 element SDO_ORDINATE_ARRAY(6,6, 12,6, 9,8, 6,10, 12,10, 6,4, 12,12) ) );