書式
SDO_UTIL.EXTRACT3D( geometry IN SDO_GEOMETRY, label IN VARCHAR2 ) RETURN SDO_GEOMETRY;
説明
3次元の入力ジオメトリの特定のサブセットを表現する3次元のジオメトリを戻します。
パラメータ
戻されるジオメトリの抽出元のジオメトリを指定します。3次元のジオメトリを指定する必要があります。
戻されるサブセット・ジオメトリを示す数字をカンマで区切った文字列で指定します。各数字は、入力ジオメトリ内のジオメトリ項目の相対位置を示します。次にlabel文字列内の項目とその位置を示します。
pointID: 点の番号
edgeID: エッジの番号
ringID: 輪の番号
polygonID: ポリゴンの番号
csurfID: 複合表面の番号
solidID: ソリッドの番号
multiID: マルチソリッドの番号
0 (ゼロ)の場合は項目が適用されません。また、適用されない末尾の項目は省略できます。たとえば、'0,2,1,4,1'では、点の番号は適用されず、1番目の複合表面の4番目のポリゴンで、1番目の輪の2番目のエッジを指定します。
使用上の注意
このファンクションは、3次元のジオメトリにのみ適用されます。2次元のジオメトリについては、SDO_UTIL.EXTRACTファンクションを使用します。
このファンクションは、oracle.spatial.geometry.ElementExtractor JavaクラスのgetElementByLabelメソッド(Oracle Spatial and GraphのJava APIリファレンスを参照)を使用します。
例
次の例では、指定した3次元のジオメトリから、入力ジオメトリの複合表面1、ポリゴン4、輪1、エッジ2で構成されたサブセット・ジオメトリを抽出します。
SELECT SDO_UTIL.EXTRACT3D(
SDO_GEOMETRY (3008,NULL,NULL ,
SDO_ELEM_INFO_ARRAY(
1,1007,1,
1,1006,6,
1,1003,1,
16,1003,1,
31,1003,1,
46,1003,1,
61,1003,1,
76,1003,1),
SDO_ORDINATE_ARRAY(
1.0,0.0,-1.0,
1.0,1.0,-1.0,
1.0,1.0,1.0,
1.0,0.0,1.0,
1.0,0.0,-1.0,
1.0,0.0,1.0,
0.0,0.0,1.0,
0.0,0.0,-1.0,
1.0,0.0,-1.0,
1.0,0.0,1.0,
0.0,1.0,1.0,
0.0,1.0,-1.0,
0.0,0.0,-1.0,
0.0,0.0,1.0,
0.0,1.0,1.0,
1.0,1.0,-1.0,
0.0,1.0,-1.0,
0.0,1.0,1.0,
1.0,1.0,1.0,
1.0,1.0,-1.0,
1.0,1.0,1.0,
0.0,1.0,1.0,
0.0,0.0,1.0,
1.0,0.0,1.0,
1.0,1.0,1.0,
1.0,1.0,-1.0,
1.0,0.0,-1.0,
0.0,0.0,-1.0,
0.0,1.0,-1.0,
1.0,1.0,-1.0
)
),
'0,2,1,4,1')
FROM DUAL;
SDO_UTIL.EXTRACT3D(SDO_GEOMETRY(3008,NULL,NULL,SDO_ELEM_INFO_ARRAY(1,1007,1,1,10
--------------------------------------------------------------------------------
SDO_GEOMETRY(3002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
0, 1, -1, 0, 1, 1))
関連項目