プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

24.41 SDO_LRS.SET_PT_MEASURE

書式

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

点を含むジオメトリ・セグメントを指定します。

dim_array

geom_segment (2つ目の構文)またはpoint (4つ目の構文)に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。

point

メジャー値を設定する点を指定します。

pt_dim_array

point (2つ目の構文)に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。

measure

指定された点に割り当てられるメジャー値を指定します。

使用上の注意

このファンクションは、メジャー値が正しく設定されている場合はTRUE、メジャー値が設定されていない場合はFALSEを戻します。

geom_segmentおよびpointの両方が指定されている場合、このプロシージャの動作は、pointgeom_segment上の形状点であるかどうかによって異なります。

  • pointgeom_segment上の形状点である場合、pointのメジャー値が設定されます。

  • pointgeom_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.