書式
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
表の列名を指定します。
1つ以上の数値を受け入れ、1つの数値を算出するOracle SQLの集計ファンクションを指定します(SUM
、MIN
、MAX
、AVG
など)。
集計値の計算を行うtheme_name
表の列名を指定します。たとえば、POPULATION列を指定します。
四角形の作成に使用するレベルを指定します。このパラメータを指定すると、各ディメンションのエクステントは、2^tiling_level
個の要素に分割され、結果として最大で4×tiling_level
の四角形が作成されます。(このパラメータ、またはxdivs
パラメータとydivs
パラメータの組合せのいずれかを指定します。)
四角形処理レベルのドメインを指定します。このパラメータを必要とせず、指定しない場合は、theme_name
表に関連付けられたエクステントが使用されます。
集計値が0 (ゼロ)となる四角形を除外するために0 (ゼロ)を指定するか、またはすべての四角形を戻すために1を指定します。デフォルト値は0 (ゼロ)です。これにより、0 (ゼロ)以外の集計値を持つ四角形のみが戻されることになります。
1つ目の次元のエクステントを何回分割するかを指定します(分割後の要素の合計数はxdivs
+ 1)。たとえば、xdivs
を10に指定すると、1つ目の次元のエクステントは11の要素に分割されます。
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.