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

前
次

28.9 SDO_SAM.TILED_AGGREGATES

書式

SDO_SAM.TILED_AGGREGATES(
     theme_name       IN VARCHAR2, 
     theme_colname    IN VARCHAR2, 
     aggr_type_string IN VARCHAR2, 
     aggr_col_string  IN VARCHAR2, 
     tiling_level     IN NUMBER DEFAULT NULL, 
     tiling_domain    IN SDO_DIM_ARRAY DEFAULT NULL, 
     zero_agg_tiles   IN NUMBER DEFAULT 0, 
     xdivs            IN NUMBER DEFAULT NULL, 
     ydivs            IN NUMBER DEFAULT NULL 
     ) RETURN SDO_REGAGGRSET;

説明

ドメインの集計を四角形処理します。四角形ごとに、テーマ表から交差するジオメトリを計算します。aggr_col_string列の値は、共通部分の面積に対して均等に重み付けされ、aggr_col_stringに従って集計されます。

パラメータ

theme_name

テーマ情報(デモグラフィック情報など)を含む表を指定します。

theme_colname

ジオメトリ・オブジェクトを含むtheme_name表の列名を指定します。

aggr_type_string

1つ以上の数値を受け入れ、1つの数値を算出するOracle SQLの集計ファンクションを指定します(SUMMINMAXAVGなど)。

aggr_col_string

集計値の計算を行うtheme_name表の列名を指定します。たとえば、POPULATION列を指定します。

tiling_level

四角形の作成に使用するレベルを指定します。このパラメータを指定すると、各ディメンションのエクステントは、2^tiling_level個の要素に分割され、結果として最大で4×tiling_levelの四角形が作成されます。(このパラメータ、またはxdivsパラメータとydivsパラメータの組合せのいずれかを指定します。)

tiling_domain

四角形処理レベルのドメインを指定します。このパラメータを必要とせず、指定しない場合は、theme_name表に関連付けられたエクステントが使用されます。

zero_agg_tiles

集計値が0 (ゼロ)となる四角形を除外するために0 (ゼロ)を指定するか、またはすべての四角形を戻すために1を指定します。デフォルト値は0 (ゼロ)です。これにより、0 (ゼロ)以外の集計値を持つ四角形のみが戻されることになります。

xdivs

1つ目の次元のエクステントを何回分割するかを指定します(分割後の要素の合計数はxdivs + 1)。たとえば、xdivsを10に指定すると、1つ目の次元のエクステントは11の要素に分割されます。

ydivs

2つ目の次元のエクステントを何回分割するかを指定します(分割後の要素の合計数はydivs + 1)。たとえば、ydivsを10に指定すると、2つ目の次元のエクステントは11の要素に分割されます。

使用上の注意

このファンクションはSDO_SAM.AGGREGATES_FOR_LAYERに類似していますが、結果は四角形処理情報によって動的に生成されます。theme_name表の場合、四角形処理のドメインが決定されます。tiling_level値、またはxdivs値およびydivs値に基づいて、必要な四角形が生成されます。各四角形ジオメトリについて、テーマ集計が行われます(SDO_SAM.AGGREGATES_FOR_LAYERの「使用上の注意」を参照)。

tiling_levelパラメータ、またはxdivsパラメータとydivsパラメータの両方を指定する必要があります。これらの3つのパラメータをすべて指定した場合、tiling_levelパラメータは無視され、xdivsパラメータとydivsパラメータが使用されます。

xdivsパラメータとydivsパラメータを指定した場合、戻されるグリッド(四角形)の合計数は、(xdivs+1)×(ydivs+1)です。

このファンクションは、SDO_REGAGGRSET型のオブジェクトを戻します。SDO_REGAGGRSETオブジェクト型は、次のとおり定義されます。

TABLE OF SDO_REGAGGR

SDO_REGAGGRオブジェクト型は、次のとおり定義されます。

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 REGION_ID                                          VARCHAR2(24)
 GEOMETRY                                           MDSYS.SDO_GEOMETRY
 AGGREGATE_VALUE                                    NUMBER

次の例では、各四角形と交差するPOLY_4PT_TEMP表の人口の行の合計を計算します。USER_SDO_GEOM_METADATAビューに格納されたPOLY_4PT_TEMP表のエクステントがドメインとして使用され、四角形処理レベルは2となります(この場合、ドメインは16の四角形に分割されます)。

SELECT a.geometry, a.aggregate_value
  from TABLE(sdo_sam.tiled_aggregates('POLY_4PT_TEMP',
                        'GEOMETRY', 'SUM', 'POPULATION', 2)) a;
 
GEOMETRY(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
--------------------------------------------------------------------------------
AGGREGATE_VALUE
---------------
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-180, -90, -90, -45))
     .007150754
 
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-180, -45, -90, 0))
     .034831005
 
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-180, 0, -90, 45))
     7.73307783
 
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-90, -90, 0, -45))
     .019498368
 
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-90, -45, 0, 0))
     .939061456
 
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(-90, 0, 0, 45))
     1.26691592
 
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(0, 0, 90, 45))
             40
 
7 rows selected.