書式
SDO_LRS.SET_PT_MEASURE( geom_segment IN OUT SDO_GEOMETRY, point IN SDO_GEOMETRY, measure IN NUMBER) RETURN VARCHAR2;
または
SDO_LRS.SET_PT_MEASURE( geom_segment IN OUT SDO_GEOMETRY, dim_array IN SDO_DIM_ARRAY, point IN SDO_GEOMETRY, pt_dim_array IN SDO_DIM_ARRAY, measure IN NUMBER) RETURN VARCHAR2;
または
SDO_LRS.SET_PT_MEASURE( point IN OUT SDO_GEOMETRY, measure IN NUMBER) RETURN VARCHAR2;
または
SDO_LRS.SET_PT_MEASURE( point IN OUT SDO_GEOMETRY, dim_array IN SDO_DIM_ARRAY, measure IN NUMBER) RETURN VARCHAR2;
説明
指定された点のメジャー値を設定します。
パラメータ
点を含むジオメトリ・セグメントを指定します。
geom_segment
(2つ目の構文)またはpoint
(4つ目の構文)に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。
メジャー値を設定する点を指定します。
point
(2つ目の構文)に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。
指定された点に割り当てられるメジャー値を指定します。
使用上の注意
このファンクションは、メジャー値が正しく設定されている場合はTRUE、メジャー値が設定されていない場合はFALSEを戻します。
geom_segment
およびpoint
の両方が指定されている場合、このプロシージャの動作は、point
がgeom_segment
上の形状点であるかどうかによって異なります。
point
がgeom_segment
上の形状点である場合、point
のメジャー値が設定されます。
point
がgeom_segment
上の形状点でない場合、point
に最も近いgeom_segment
上の形状点が検出され、この形状点のメジャー値が設定されます。
このファンクションは_3D形式(SDO_LRS.SET_PT_MEASURE_3D)が使用可能です。ただし、SDO_LRS.SET_PT_MEASURE_3Dでは、geom_segment
パラメータを含む形式のみが使用可能です。LRSファンクションの3D形式については、「LRSファンクションの3D形式」を参照してください。
geom_segment
またはpoint
が無効な場合、例外が発生します。
例
次の例では、点(8,10)のメジャー値を20に設定します。(例では、「LRSファンクションの例」の例の定義を使用しています。)
-- Set the measure value of point 8,10 to 20 (originally 22). DECLARE geom_segment SDO_GEOMETRY; dim_array SDO_DIM_ARRAY; result VARCHAR2(32); BEGIN SELECT a.route_geometry into geom_segment FROM lrs_routes a WHERE a.route_name = 'Route1'; SELECT m.diminfo into dim_array from user_sdo_geom_metadata m WHERE m.table_name = 'LRS_ROUTES' AND m.column_name = 'ROUTE_GEOMETRY'; -- Set the measure value of point 8,10 to 20 (originally 22). result := SDO_LRS.SET_PT_MEASURE (geom_segment, SDO_GEOMETRY(3301, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 1), SDO_ORDINATE_ARRAY(8, 10, 22)), 20); -- Display the result. DBMS_OUTPUT.PUT_LINE('Returned value = ' || result); END; / Returned value = TRUE PL/SQL procedure successfully completed.