書式
SDO_LRS.LRS_INTERSECTION( geom_1 IN SDO_GEOMETRY, dim_array_1 IN SDO_DIM_ARRAY, geom_2 IN SDO_GEOMETRY, dim_array_2 IN SDO_DIM_ARRAY ) RETURN SDO_GEOMETRY;
または
SDO_LRS.LRS_INTERSECTION( geom_1 IN SDO_GEOMETRY, geom_2 IN SDO_GEOMETRY, tolerance IN NUMBER ) RETURN SDO_GEOMETRY;
説明
いずれか、または両方がLRSジオメトリである2つのジオメトリ・オブジェクトで位相的に共通部分(AND演算)となるLRSジオメトリ・オブジェクトを戻します。
パラメータ
ジオメトリ・オブジェクト。
geom_1
に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。
ジオメトリ・オブジェクト。
geom_2
に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。
許容差(「許容差」を参照)。
使用上の注意
このファンクションは、基本的にSDO_GEOM.SDO_INTERSECTIONと同じ共通部分の操作を実行します(「SDO_GEOMパッケージ(ジオメトリ)」を参照)。ただし、SDO_LRS.LRS_INTERSECTIONは、ジオメトリ関連の入力パラメータのいずれか、または両方がLRSジオメトリであるような、有効なLRSジオメトリ(点、線ストリングまたは複合線ストリング)を戻すように設計されています。(いずれの入力ジオメトリもLRSジオメトリではない場合、このファンクションは、SDO_GEOM.SDO_INTERSECTIONファンクションと同じように機能します。)
戻されるジオメトリは、LRS線ストリング、複数線ストリングまたは点ジオメトリであり、これにはメジャー次元情報が含まれます。メジャー値には、入力パラメータとして指定された1つ目のLRSジオメトリの値が反映されます。
入力パラメータとして指定される1つ目のLRSジオメトリは、ポリゴンではなく、線ストリング、複数線ストリングまたは点である必要があります。
LRS線ストリング(ジオメトリ・セグメント)が線ストリング(LRSまたは標準)と交差している場合、その結果はLRS点になります。LRS線ストリングがポリゴンと交差している場合、その結果はLRS線ストリングになります。
geom_1
およびgeom_2
が異なる座標系に基づく場合は、例外が発生します。
例
次の例は、(8,2)から(8,6)への垂直線が交差するLRSジオメトリ・セグメント(「LRSファンクションの例」の高速道路の例を参照)を示しています。結果は、LRS点ジオメトリであり、メジャー値(8)は、geom_1
ジオメトリにおけるその点(Exit 3として指定されている)のメジャーを反映しています。(例では、「LRSファンクションの例」の例の定義を使用しています。)
-- Intersection of LRS segment and standard line segment SELECT SDO_LRS.LRS_INTERSECTION(route_geometry, SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,2,1), SDO_ORDINATE_ARRAY(8,2, 8,6)), 0.005) FROM lrs_routes WHERE route_id = 1; SDO_LRS.LRS_INTERSECTION(ROUTE_GEOMETRY,SDO_GEOMETRY(2002,NULL,NULL,SDO_ELEM_INF -------------------------------------------------------------------------------- SDO_GEOMETRY(3301, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 1), SDO_ORDINATE_ARRAY( 8, 4, 8))
次の例は、(12,2)から(12,6)への垂直線が交差するLRSジオメトリ・セグメント(「LRSファンクションの例」の図7-20を参照)を示しています。結果は、LRS線ストリング・ジオメトリであり、メジャー値(12および14)は、geom_1
ジオメトリにおける点(その1つ目の点はExit 4として指定されている)のメジャーを反映しています。(例では、「LRSファンクションの例」の例の定義を使用しています。)
SELECT SDO_LRS.LRS_INTERSECTION(route_geometry, SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,2,1), SDO_ORDINATE_ARRAY(12,2, 12,6)), 0.005) FROM lrs_routes WHERE route_id = 1; SDO_LRS.LRS_INTERSECTION(ROUTE_GEOMETRY,SDO_GEOMETRY(2002,NULL,NULL,SDO_ELEM_INF -------------------------------------------------------------------------------- SDO_GEOMETRY(3302, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY( 12, 4, 12, 12, 6, 14))