書式
SDO_LRS.REVERSE_GEOMETRY( geom IN SDO_GEOMETRY [, dim_array IN SDO_DIM_ARRAY] ) RETURN SDO_GEOMETRY;
説明
ジオメトリ・セグメントのメジャー値および方向を反転させて、新しいジオメトリ・セグメントを戻します。
パラメータ
線形フィーチャの地図的表現を指定します。
geom
に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。
使用上の注意
このファンクションは、次の操作を実行します。
geom
のメジャー値を反転させます。
geom
の開始メジャーは戻されたジオメトリ・セグメントの終了メジャーになり、geom
の終了メジャーは戻されたジオメトリ・セグメントの開始メジャーになります。他のすべてのメジャーも適切に調整されます。
geom
の方向を反転させます。
ジオメトリ・セグメントのメジャー値のみを反転させる(方向は反転させない)SDO_LRS.REVERSE_MEASUREと比較してください。
非LRS線ストリング・ジオメトリの頂点を反転させるには、SDO_UTIL.REVERSE_LINESTRINGファンクション(「SDO_UTILパッケージ(ユーティリティ)」を参照)を使用します。
geom
に無効なジオメトリ・タイプまたは次元が含まれる場合、例外が発生します。ジオメトリ・タイプは単一または複数の線であり、次元数は3 (2次元とメジャー次元)である必要があります。
このファンクションは_3D 形式(SDO_LRS.REVERSE_GEOMETRY_3D)が使用可能です。LRSファンクションの3D形式については、「LRSファンクションの3D形式」を参照してください。
例
次の例では、ジオメトリ・セグメントRoute 1のメジャー値および方向を反転させます。(例では、「LRSファンクションの例」の例の定義を使用しています。)
-- Reverse direction and measures (for example, to prepare for -- concatenating with another road). -- First, display the original segment; then, reverse. SELECT a.route_geometry FROM lrs_routes a WHERE a.route_id = 1; ROUTE_GEOMETRY(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDIN -------------------------------------------------------------------------------- SDO_GEOMETRY(3302, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY( 2, 2, 0, 2, 4, 2, 8, 4, 8, 12, 4, 12, 12, 10, 18, 8, 10, 22, 5, 14, 27)) SELECT SDO_LRS.REVERSE_GEOMETRY(a.route_geometry, m.diminfo) FROM lrs_routes a, user_sdo_geom_metadata m WHERE m.table_name = 'LRS_ROUTES' AND m.column_name = 'ROUTE_GEOMETRY' AND a.route_id = 1; SDO_LRS.REVERSE_GEOMETRY(A.ROUTE_GEOMETRY,M.DIMINFO)(SDO_GTYPE, SDO_SRID, SDO_PO -------------------------------------------------------------------------------- SDO_GEOMETRY(3302, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY( 5, 14, 27, 8, 10, 22, 12, 10, 18, 12, 4, 12, 8, 4, 8, 2, 4, 2, 2, 2, 0))
戻されたセグメントでは、M値(メジャー)が27から0の降順に並んでおり、セグメントの開始点および終了点のXおよびYの値は元のセグメントと反対になっている(元のセグメントでは2,2と5,14であるのに対し、戻されたセグメントでは5,14と2,2)ことに注意してください。