書式
SDO_UTIL.GETVERTICES( geometry IN SDO_GEOMETRY ) RETURN VERTEX_SET_TYPE;
説明
入力ジオメトリの頂点の座標を戻します。
使用上の注意
このファンクションは、MDSYS.VERTEX_SET_TYPEのオブジェクトを戻します(このオブジェクトは、MDSYS.VERTEX_TYPEのオブジェクトの表で構成されます)。Oracle Spatial and Graphでは、VERTEX_SET_TYPE型を次のように定義します。
CREATE TYPE vertex_set_type as TABLE OF vertex_type;
Oracle Spatial and Graphは、VERTEX_TYPEオブジェクト型を次のとおり定義します。
CREATE TYPE vertex_type AS OBJECT
(x NUMBER,
y NUMBER,
z NUMBER,
w NUMBER,
v5 NUMBER,
v6 NUMBER,
v7 NUMBER,
v8 NUMBER,
v9 NUMBER,
v10 NUMBER,
v11 NUMBER,
id NUMBER);
注意:
VERTEX_SET_TYPE型およびVERTEX_TYPE型は、Oracleでのみ使用されます。これらの型を、ユーザーが作成する列の定義やファンクションで使用しないでください。
このファンクションは、ジオメトリを無効にしている頂点を検出する場合に有効です。たとえば、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTファンクションまたはSDO_GEOM.VALIDATE_LAYER_WITH_CONTEXTプロシージャ(いずれについても「SDO_GEOMパッケージ(ジオメトリ)を参照)を使用してジオメトリが無効であると特定した場合は、GETVERTICESファンクションを使用して頂点を表形式で表示できます。
例
次の例では、COLA_MARKETS表のSHAPE列にあるジオメトリの頂点のX座標、Y座標およびID値を戻します。(例では、「空間データの挿入、索引付けおよび問合せの例」の定義およびデータを使用しています。)
SELECT c.mkt_id, c.name, t.X, t.Y, t.id
FROM cola_markets c,
TABLE(SDO_UTIL.GETVERTICES(c.shape)) t
ORDER BY c.mkt_id, t.id;
MKT_ID NAME X Y ID
---------- -------------------------------- ---------- ---------- ----------
1 cola_a 1 1 1
1 cola_a 5 7 2
2 cola_b 5 1 1
2 cola_b 8 1 2
2 cola_b 8 6 3
2 cola_b 5 7 4
2 cola_b 5 1 5
3 cola_c 3 3 1
3 cola_c 6 3 2
3 cola_c 6 5 3
3 cola_c 4 5 4
3 cola_c 3 3 5
4 cola_d 8 7 1
4 cola_d 10 9 2
4 cola_d 8 11 3
15 rows selected.