すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_AsHMT

最終更新日:May 06, 2024

この関数は、指定された範囲と解像度に基づいて、ジオメトリオブジェクトのセットをヒートマップタイル (H M T) に変換します。

構文

bytea ST_AsHMT(geometry geometry_set, geometry extent, int4 width, int4 height, int4 value default 1, boolean point_mode default false);
bytea ST_AsHMT(geometry geometry_set, geometry extent, int4 width, int4 height, int4 value);
bytea ST_AsHMT(geometry geometry_set、geometry extent、int4 width、int4 height、int4 value、boolean point_mode);
bytea ST_AsHMT(geometry geometry_set、geometry extent、int4 width、int4 height、float8値);
bytea ST_AsHMT(geometry geometry_set、geometry extent、int4 width、int4 height、float8値、ブールpoint_mode);
bytea ST_AsHMT(geometry geometry_set, geometry extent, int4 width, int4 height, int4 value, cstring config);
bytea ST_AsHMT(geometry geometry_set、geometry extent、int4 width、int4 height、float8値、cstring config); 

戻り値

protobufベースのバイナリデータ行列が返されます。 次の例は、protoファイルを示しています。

構文="proto2";
オプションoptimize_for = LITE_RUNTIME;

メッセージHMT {
    必須タイプタイプタイプ=1; // データ値タイプ
    required uint32 rows = 2; // 行列の行
    required uint32 columns = 3; // 行列の列
    required uint32 srid = 4; // 行列の列
    必須フロートxmin = 5; // xmin
    必須フロートymin = 6; // ymin
    必須フロートxmax = 7; // xmax
    必須フロートymax = 8; // ymax

    oneof matrix {
        intMatrix intValues = 10;
        doubleMatrix doubleValues = 11;
    }

    intMatrixメッセージ {
        繰り返しsint32値=12 [packed = true];
    }

    メッセージdoubleMatrix {
        繰り返しダブル値=13 [packed = true];
    }

    enumタイプ {
        INT32 = 0;
        DOUBLE = 1;
    }
}
説明

  • typeパラメーターの値は、入力パラメーターによって指定され、int32型またはdouble型にすることができます。 int32タイプは数量などの情報を計算するために使用され、doubleタイプはメトリクスなどの情報を計算するために使用されます。

  • rowsパラメーターは行列の行数を示し、columnsパラメーターは行列の列数を示します。

  • 行列内の値は、指定されたデータ型の配列であり、行に編成される。

  • 行列は、X方向に昇順、Y方向に降順である。 これにより、画像への変換が容易になる。

  • ST_HMTAsArray関数を使用して、戻り値を配列表現に変換できます。 ST_HMTAsArray関数の詳細については、「ST_HMTAsArray」をご参照ください。

Parameters

パラメーター

説明

geometry_set

ジオメトリ列フィールド。

extent

地理的範囲。 境界ボックスのみが使用される。 ST_TileEnvelope関数と組み合わせて使用できます。

width

結果のcolumnsパラメータに対応するメッシュ幅。

height

結果の行パラメータに対応するメッシュの高さ。

value

統計値。 値はプロセスで合計されます。

point_mode

ポイントモードを使用するかどうかを指定します。 ポイントモードを使用すると、メッシュ内のポイントのみがカウントされます。

config

ヒートマップのスタイルを示すJSON文字列。

使用上の注意

この関数は、指定された範囲と解像度に基づいて、一連のジオメトリオブジェクトをHMTに変換します。

データの空間参照が入力範囲の空間参照と一致しない場合、入力範囲の空間参照がデータのために使用される。

configパラメーターは、JSON文字列での計算方法を示します。 次の表に、パラメーターに設定できるオプションを示します。

オプション

説明

データ型

デフォルト値

補足

type

集計のタイプ。

String

sum

有効な値:

  • sum

  • min

  • max

  • avg

point_mod

ポイントモードを使用するかどうかを指定します。

Boolean

false

-

説明

int4型を使用して合計値を計算すると、int32型の有効な値が-2147483648から2147483647の範囲であるため、無効な値が返される場合があります。 float8タイプの使用を推奨します。

-- テーブルの作成
CREATE TABLE test_table AS
SELECT i num,
    ST_SetSrid(st_makepoint((i-0.5):: 数値、(i-0.5):: 数値) 、4326) geom、
    i * 100::int4 weight、
    i * i * i::float8ボリューム
FROM generate_series(1、10) i;

-カウント数量
SELECT ST_AsHMT(geom, -- geometry type)
    ST_MakeEnvelope(0、0、10、10、4326) 、-- 範囲
    1024、-- 幅、ピクセル単位
    800-高さ
)
test_tableから;

---------
\x080010a0061880083284...

-- カウント値
SELECT ST_AsHMT(geom, -- geometry type)
    ST_MakeEnvelope(0、0、10、10、4326) 、-- 範囲
    1024、-- 幅
    800、-高さ
    weight -- 値の列
)
test_tableから;
---------
\x080010a0061880...

-複雑なカウント
SELECT ST_AsHMT(geom, -- geometry type)
    ST_MakeEnvelope(0、0、10、10、4326) 、-- 範囲
    1024、-- 幅
    800、-高さ
    重量 /ボリューム * 1.2-複雑な値
)
test_tableから;
---------
\x080110a0061880083a85...

-ポイントモード
SELECT ST_AsHMT(geom, -- geometry type)
    ST_MakeEnvelope(0、0、10、10、4326) 、-- 範囲
    1024、-- 幅、ピクセル単位
    800, -- height,
    1::integer, -- value
    true -- ポイントモード
)
test_tableから;
---------
\x080010a0061880083...

-- where句
SELECT ST_AsHMT(geom, -- geometry type)
    ST_MakeEnvelope(0、0、10、10、4326) 、-- 範囲
    1024、-- 幅、ピクセル単位
    800-高さ
)
FROM test_table
WHERE num <5;
---------
\x080010a00618...

-平均
SELECT ST_AsHMT(the_geom、
    ST_MakeEnvelope(0、0、10、10、4326) 、-- 範囲
    256、-- 幅、ピクセル単位
    256-高さ
    重量、 
    '{"type":"avg"}'::cstring)
test_tableから;
---------
\x080010a00618...

-min、ポイントモードを使用する
SELECT ST_AsHMT(the_geom、
    ST_MakeEnvelope(0、0、10、10、4326) 、-- 範囲
    256、-- 幅、ピクセル単位
    256-高さ
    重量、 
    '{"type":"min", "point_mode":true}'::cstring)
test_tableから;
---------
\x080010a00618...