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

前
次

19.4 SDO_AGGR_LRS_CONCAT

書式

SDO_AGGR_LRS_CONCAT(
     AggregateGeometry  SDOAGGRTYPE 
     ) RETURN SDO_GEOMETRY;

説明

指定されたLRSジオメトリを連結するLRSジオメトリを戻します。

パラメータ

AggregateGeometry

ジオメトリ列および次元配列を指定するSDOAGGRTYPE型のオブジェクト(「SDOAGGRTYPEオブジェクト型」を参照)を指定します。

使用上の注意

このファンクションは、任意の数のLRSジオメトリの集計連結を実行します。ジオメトリを連結する順序を制御する必要がある場合、NO_MERGEオプティマイザ・ヒントおよびORDER BY句を指定した副問合せを使用する必要があります。(例を参照。)

結果のセグメントの方向は、連結内の最初のジオメトリの方向と同じになります。

このファンクションは3D形式(SDO_AGGR_LRS_CONCAT_3D)が使用可能です。LRSファンクションの3D形式については、「LRSファンクションの3D形式」を参照してください。

Spatial and Graphの線形参照システムについては、「線形参照システム」を参照してください。

次の例では、LRS_ROUTES表にLRSジオメトリを追加し、次に、表に含まれるLRSジオメトリを連結する2つの問合せを実行します。最初の問合せでは、連結の順序は制御されません。2番目の問合せで制御されます。2つのセグメントの方向が異なることに注意してください。連結(Route0)の最初のセグメントのメジャー値が降順であるため、2番目の問合せ結果のセグメントのメジャー値は降順です。(例では、「LRSファンクションの例」の例の定義を使用しています。)

-- Add a segment with route_id less than 1 (here, zero).
INSERT INTO lrs_routes VALUES(
  0,
  'Route0',
  SDO_GEOMETRY(
    3302,  -- Line string; 3 dimensions (X,Y,M); 3rd is measure dimension.
    NULL,
    NULL,
    SDO_ELEM_INFO_ARRAY(1,2,1), -- One line string, straight segments
    SDO_ORDINATE_ARRAY(
      5,14,5,   -- Starting point - 5 is measure from start.
      10,14,0)  -- Ending point - 0 measure (decreasing measure)
  )
);

1 row created.

-- Concatenate all routes (no ordering specified).
SELECT SDO_AGGR_LRS_CONCAT(SDOAGGRTYPE(route_geometry, 0.005))
    FROM lrs_routes;

SDO_AGGR_LRS_CONCAT(SDOAGGRTYPE(ROUTE_GEOMETRY,0.005))(SDO_GTYPE, SDO_SRID
--------------------------------------------------------------------------------
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, 10, 14, 
32))

-- Aggregate concatenation using subquery for ordering.
SELECT 
SDO_AGGR_LRS_CONCAT(SDOAGGRTYPE(route_geometry, 0.005)) 
FROM ( 
             SELECT /*+ NO_MERGE */ route_geometry 
             FROM lrs_routes 
             ORDER BY route_id); 

SDO_AGGR_LRS_CONCAT(SDOAGGRTYPE(ROUTE_GEOMETRY,0.005))(SDO_GTYPE, SDO_SRID
--------------------------------------------------------------------------------
SDO_GEOMETRY(3302, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
2, 2, 32, 2, 4, 30, 8, 4, 24, 12, 4, 20, 12, 10, 14, 8, 10, 10, 5, 14, 5, 10, 14
, 0))