Tous les produits
Search
Centre de documentation

:ST_AsHMT

Dernière mise à jour :Sep 24, 2026

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;
    }
}
Remarque
  • 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...