Renvoie la définition des types de colonnes d'une trajectoire sous forme de texte, à utiliser avec ST_AsTable.
Syntaxe
text ST_AsTableFormat(trajectory traj);
Paramètres
| Paramètre | Description |
|---|---|
traj |
Objet trajectoire à inspecter. |
Description
ST_AsTableFormat inspecte un objet trajectoire et renvoie une chaîne de texte décrivant sa structure de colonnes. Exemple :
(t timestamp, x double precision, y double precision, sog real, cog integer, hdg integer, rot integer, status integer, is_satelite smallint, statictime integer)
Les attributs des trajectoires variant selon les jeux de données, il est impossible de coder en dur les types de colonnes pour ST_AsTable. Appelez d'abord ST_AsTableFormat pour inspecter la définition réelle des colonnes, puis transmettez-la à ST_AsTable afin de déployer la trajectoire dans une table relationnelle.
Exemples
Obtenir la définition des colonnes d'une trajectoire
L'exemple suivant récupère la définition des types de colonnes à partir d'un objet trajectoire.
SELECT ST_AsTableFormat(
'{"trajectory":{"version":1,"type":"STPOINT","leafcount":1,
"start_time":"2010-01-01 11:30:00","end_time":"2010-01-01 11:30:00",
"spatial":"SRID=4326;POINT(1 1)","timeline":["2010-01-01 11:30:00"],
"attributes":{"leafcount":1,
"i1":{"type":"integer","length":1,"nullable":true,"value":[1]},
"i2":{"type":"integer","length":2,"nullable":true,"value":[1]},
"i4":{"type":"integer","length":4,"nullable":true,"value":[1]},
"i8":{"type":"integer","length":8,"nullable":true,"value":[1]},
"f4":{"type":"float","length":4,"nullable":true,"value":[1]},
"f8":{"type":"float","length":8,"nullable":true,"value":[1]},
"string":{"type":"string","length":10,"nullable":true,"value":["fat"]},
"timestamp":{"type":"timestamp","length":8,"nullable":true,"value":["2010-01-01 11:30:00"]},
"bool":{"type":"bool","length":1,"nullable":true,"value":["true"]}}}}'::trajectory
);
-- Result:
-- (t timestamp, x double precision, y double precision, i1 integer, i2 smallint,
-- i4 integer, i8 bigint, f4 real, f8 double precision, string text,
-- timestamp timestamp, bool boolean)
Le résultat associe chaque attribut de trajectoire à son type de colonne PostgreSQL correspondant :
| Attribut | Type dans la trajectoire | Type de colonne SQL |
|---|---|---|
i1 |
integer, length 1 | integer |
i2 |
integer, length 2 | smallint |
i4 |
integer, length 4 | integer |
i8 |
integer, length 8 | bigint |
f4 |
float, length 4 | real |
f8 |
float, length 8 | double precision |
string |
string | text |
timestamp |
timestamp | timestamp |
bool |
bool | boolean |
Déployer une trajectoire dans une table
L'exemple suivant illustre le flux de travail complet en deux étapes : appelez ST_AsTableFormat pour obtenir la définition des colonnes, puis transmettez-la à ST_AsTable afin de déployer la trajectoire dans une table interrogeable.
Étape 1. Obtenez la définition des colonnes.
SELECT ST_AsTableFormat(traj) FROM table_name LIMIT 1;
-- Result:
-- (t timestamp, x double precision, y double precision, sog real, cog integer,
-- hdg integer, rot integer, status integer, is_satelite smallint, statictime integer)
Étape 2. Utilisez la définition dans ST_AsTable pour déployer la trajectoire.
SELECT f.*
FROM table_name,
ST_AsTable(traj) AS f(
t timestamp, x double precision, y double precision,
sog real, cog integer, hdg integer, rot integer,
status integer, is_satelite smallint, statictime integer
);
Étapes suivantes
ST_AsTable — convertit une trajectoire en une table relationnelle en utilisant la définition des colonnes renvoyée par
ST_AsTableFormat