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

前
次

24.29 SDO_LRS.LOCATE_PT

書式

SDO_LRS.LOCATE_PT(
     geom_segment IN SDO_GEOMETRY, 
     measure      IN NUMBER 
     [, offset    IN NUMBER] 
     ) RETURN SDO_GEOMETRY;

または

SDO_LRS.LOCATE_PT(
     geom_segment IN SDO_GEOMETRY, 
     dim_array    IN SDO_DIM_ARRAY, 
     measure      IN NUMBER 
     [, offset    IN NUMBER] 
     ) RETURN SDO_GEOMETRY;

説明

ジオメトリ・セグメントの開始位置から指定した距離にある点を戻します。

パラメータ

geom_segment

measureのメジャー範囲内にあるかどうかを確認するジオメトリ・セグメントを指定します。

dim_array

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

measure

geom_segmentの開始点からメジャーまでの距離を指定します。

offset

geom_segmentの開始点からmeasure単位にある点からメジャーまでの垂直距離を指定します。デフォルト値は0(ゼロ)です(点はgeom_segment上にあります)。

使用上の注意

このファンクションは、参照点を戻します。たとえば、高速道路では、点で事故現場を表すために使用します。

offsetの測定単位は、geom_segmentに関連付けられた座標系の測定単位と同じです。測地データの場合、デフォルトの測定単位はmです。

WGS 84座標系を使用する測地データでは、このファンクションを使用して、点の経度および緯度座標またはセグメントからのオフセットを戻すことができます。

geom_segmentに無効なジオメトリ・タイプまたは次元が含まれる場合、または位置が範囲外の場合、例外が発生します。

このファンクションは_3D形式(SDO_LRS.LOCATE_PT_3D)が使用可能です。ただし、SDO_LRS.LOCATE_PT_3Dでは、offsetパラメータを使用できません。LRSファンクションの3D形式については、「LRSファンクションの3D形式」を参照してください。

ジオメトリ・セグメント上の点の位置の確認については、「ジオメトリ・セグメント上の点の位置の確認」を参照してください。

次の例では、自動車事故データの表を作成し、メジャーが9でジオメトリ・セグメントRoute 1上に存在する点(オフセット0(ゼロ))における事故の記録を挿入して、そのデータを表示します。(事故の表は、意図的に単純化されています。例では、「LRSファンクションの例」の例のルート定義を使用しています。)

-- Create a table for accidents.
CREATE TABLE accidents (
  accident_id  NUMBER PRIMARY KEY,
  route_id  NUMBER,
  accident_geometry  SDO_GEOMETRY);
 
-- Insert an accident record.
DECLARE
geom_segment SDO_GEOMETRY;
 
BEGIN
 
SELECT  SDO_LRS.LOCATE_PT(a.route_geometry, 9, 0) into geom_segment
  FROM lrs_routes a WHERE a.route_name = 'Route1';
 
INSERT INTO accidents VALUES(1, 1, geom_segment);
 
END;
/
 
SELECT * from accidents;
 
ACCIDENT_ID   ROUTE_ID                                                          
----------- ----------                                                          
ACCIDENT_GEOMETRY(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_OR
--------------------------------------------------------------------------------
          1          1                                                          
SDO_GEOMETRY(3301, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 1), SDO_ORDINATE_ARRAY(
9, 4, 9))