Convertit un ensemble d'objets de trajectoire en tuiles de carte thermique (HeatMapTiles) selon une étendue et une résolution spécifiées.
Syntaxe
bytea ST_AsHMT(trajectory trajectory_set, geometry extent, int4 width, int4 height, int4 value default 1, boolean point_mode default false);
bytea ST_AsHMT(trajectory trajectory_set, geometry extent, int4 width, int4 height, int4 value);
bytea ST_AsHMT(trajectory trajectory_set, geometry extent, int4 width, int4 height, int4 value, boolean point_mode);
bytea ST_AsHMT(trajectory trajectory_set, geometry extent, int4 width, int4 height, float8 value);
bytea ST_AsHMT(trajectory trajectory_set, geometry extent, int4 width, int4 height, float8 value, boolean point_mode);
Valeur renvoyée
Renvoie une structure de données binaire basée sur Protobuf qui représente la valeur de chaque point dans la matrice. Consultez l'exemple de fichier Protobuf ci-dessous :
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
message HMT {
required Type type = 1; // data value type
required uint32 rows = 2; // rows of matrix
required uint32 columns = 3; // columns of matrix
required uint32 srid = 4; // columns of matrix
required float xmin = 5; // xmin
required float ymin = 6; // ymin
required float xmax = 7; // xmax
required float ymax = 8; // ymax
oneof matrix {
intMatrix intValues = 10;
doubleMatrix doubleValues = 11;
}
message intMatrix {
repeated sint32 values = 12 [packed = true];
}
message doubleMatrix {
repeated double values = 13 [packed = true];
}
enum Type {
INT32 = 0;
DOUBLE = 1;
}
}
La valeur Type est déterminée par les paramètres d'entrée et peut être int32 ou double. Le type int32 sert à calculer des informations telles que la quantité, tandis que le type double est utilisé pour des métriques.
La valeur rows indique le nombre de lignes de la matrice, et la valeur columns indique le nombre de colonnes.
Les valeurs de la matrice sont des tableaux du type spécifié par Type et sont organisées par ligne.
Vous pouvez utiliser la fonction ST_HMTAsArray pour convertir la valeur renvoyée en tableaux.
Paramètres
|
Paramètre |
Description |
|
geometry_set |
Champ de colonne géométrique utilisé par la fonction d'agrégation. |
|
extent |
L'étendue géographique à obtenir. Seule la boîte englobante est récupérée. Ce paramètre peut être utilisé conjointement avec la fonction ST_TileEnvelope. |
|
width |
La largeur de la matrice, qui correspond aux colonnes des résultats. |
|
height |
La hauteur de la matrice, qui correspond aux lignes du résultat. |
|
value |
Les valeurs à calculer. La somme des valeurs spécifiées est calculée. |
|
point_mode |
Indique si le mode point est activé. Si vous utilisez le mode point, seules les valeurs des points dans la matrice sont calculées. |
Description
Convertit un ensemble d'objets de trajectoire en tuiles de carte thermique selon une étendue et une résolution spécifiées.
Exemple
-- create table
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 volume
FROM generate_series(1, 100) i;
-- count quantity
SELECT ST_AsHMT(traj, --trajectory type
ST_MakeEnvelope(0, 0, 10, 10), -- Extent
1024, -- Width, in pixel
800 -- height
)
FROM test_table;
---------
\x080010a0061880083284...
-- count value
SELECT ST_AsHMT(traj, --trajectory type
ST_MakeEnvelope(0, 0, 10, 10), -- Extent
1024, -- Width
800, -- height
weight -- value column
)
FROM test_table;
---------
\x080010a0061880...
-- complex count
SELECT ST_AsHMT(traj, --trajectory type
ST_MakeEnvelope(0, 0, 10, 10), -- Extent
1024, -- Width
800, -- height
weight / volume * 1.2 -- complex value
)
FROM test_table;
---------
\x080110a0061880083a85...
-- point mode
SELECT ST_AsHMT(traj, --trajectory type
ST_MakeEnvelope(0, 0, 10, 10), -- Extent
1024, -- Width, in pixel
800, -- height,
1::integer, -- value
true -- point mode
)
FROM test_table;
---------
\x080010a0061880083...
-- where clause
SELECT ST_AsHMT(traj, --trajectory type
ST_MakeEnvelope(0, 0, 10, 10), -- Extent
1024, -- Width, in pixel
800 -- height
)
FROM test_table
WHERE num <5;
---------
\x080010a00618...