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

:ST_AsHMT

最終更新日:Mar 19, 2024

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

構文

bytea ST_AsHMT (軌道トラクトリー_セット、ジオメトリ範囲、int4幅、int4高さ、int4値デフォルト1、ブールpoint_modeデフォルトfalse);
bytea ST_AsHMT (軌道トラジェクトリー_セット、ジオメトリ範囲、int4幅、int4高さ、int4値);
bytea ST_AsHMT (弾道トラジェクトリョーセット、ジオメトリ範囲、int4幅、int4高さ、int4値、ブールpoint_mode);
bytea ST_AsHMT (軌道トラジェクトリー_セット、ジオメトリ範囲、int4幅、int4高さ、float8値);
bytea ST_AsHMT (弾道トラジェクトリョーセット、ジオメトリ範囲、int4幅、int4高さ、float8値、ブールpoint_mode); 

戻り値

行列内の各点の値を表すProtobufベースのバイナリデータ構造を返します。 次のサンプルProtobufファイルを参照してください。

構文="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タイプはメトリクスなどの情報を計算するために使用されます。

  • 行の値は、行列の行の数を表し、列の値は、行列の列の数を表す。

  • 行列内の値は、typeで指定された型の配列であり、行ごとに編成されます。

  • ST_HMTAsArray関数を使用して、返された値を配列に変換できます。

Parameters

項目

説明

geometry_set

集計関数で使用されるジオメトリ列フィールド。

extent

取得する地理的範囲。 境界ボックスのみが得られる。 このパラメーターは、ST_TileEnvelope関数と組み合わせて使用できます。

width

結果の列に対応する行列の幅。

height

結果の行に対応する行列の高さ。

value

計算される値。 指定された値の合計が計算されます。

point_mode

ポイントモードを有効にするかどうか。 ポイントモードを使用すると、行列内のポイントの値のみが計算されます。

説明

指定された範囲と指定された解像度に基づいて、一連の軌道オブジェクトをヒートマップタイルに変換します。

-- テーブルの作成
CREATE test_table AS
SELECT i as num, 
               st_maketrajectory('STPOINT '::leaftype、 
                    st_MakeLine(ST_Point(i::numeric/10, i::numeric/10) 、ST_Point((i + 10)::numeric/10, (i + 10)::numeric/10)) 、 
                    '[2010-01-01 14:30, 2010-01-01 15:30)'::tsrange, NULL) as traj,
    i * 100::int4 weight、
    i * i * i::float8ボリューム
FROM generate_series(1, 100) i;

-カウント数量
SELECT ST_AsHMT(traj, -- 軌道タイプ)
    ST_MakeEnvelope(0、0、10、10) 、-- 範囲 
    1024、-- 幅、ピクセル単位
    800-高さ
)
test_tableから;

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

-- カウント値
SELECT ST_AsHMT(traj, -- 軌道タイプ)
    ST_MakeEnvelope(0、0、10、10) 、-- 範囲 
    1024、-- 幅
    800、-高さ
    weight -- 値の列
)
test_tableから;
---------
\x080010a0061880...

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

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

-- where句
SELECT ST_AsHMT(traj, -- 軌道タイプ)
    ST_MakeEnvelope(0、0、10、10) 、-- 範囲 
    1024、-- 幅、ピクセル単位
    800-高さ
)
FROM test_table
WHERE num <5;
---------
\x080010a00618...