ST_AsTable は、trajectory オブジェクトを、軌道上の各ポイントごとに 1 行のレコードを持つテーブルに変換します。各行にはタイムスタンプおよび対応する空間座標が含まれます。
構文
trajectory ST_AsTable (trajectory traj);パラメーター
| パラメーター | 説明 |
|---|---|
traj | 元の軌道です。 |
説明
ST_AsTable は、trajectory 値を複数の行に展開します。出力スキーマは、「ST_makeTrajectory」(構文 5)で定義されたポイントベースのフォーマットと一致します。各行には以下の 3 つのフィールドが含まれます:
t(timestamp):軌道ポイントのタイムスタンプx(double precision):x 座標y(double precision):y 座標
名前付き・型指定済みのカラムを取得するには、ST_AsTable を FROM 句内で呼び出し、カラムエイリアス句を指定します:AS f(t timestamp, x double precision, y double precision)。
例
軌道ポイントをタプルとして返す
ST_AsTable を SELECT 内で呼び出すと、各軌道ポイントが複合タプルとして返されます。
WITH traj AS (
SELECT '{"trajectory":{"version":1,"type":"STPOINT","leafcount":2,"start_time":"2010-01-01 11:30:00","end_time":"2010-01-01 12:30:00","spatial":"SRID=4326;LINESTRING(1 1,3 5)","timeline":["2010-01-01 11:30:00","2010-01-01 12:30:00"]}}'::trajectory a
)
SELECT ST_AsTable(a) FROM traj;出力:
st_astable
-----------------------------
("2010-01-01 11:30:00",1,1)
("2010-01-01 12:30:00",3,5)
(2 rows)軌道ポイントを型指定済みテーブルに展開する
ST_AsTable を SELECT * とともに、カラムエイリアス句を指定して呼び出すと、軌道ポイントが名前付き・型指定済みのカラムに展開されます。この形式は、標準 SQL を用いたフィルター処理、結合、または集計などに適しています。
SELECT *
FROM ST_AsTable(
'{"trajectory":{"version":1,"type":"STPOINT","leafcount":2,"start_time":"2010-01-01 11:30:00","end_time":"2010-01-01 12:30:00","spatial":"SRID=4326;LINESTRING(1 1,3 5)","timeline":["2010-01-01 11:30:00","2010-01-01 12:30:00"]}}'::trajectory
) AS f(t timestamp, x double precision, y double precision);出力:
t | x | y
---------------------+---+---
2010-01-01 11:30:00 | 1 | 1
2010-01-01 12:30:00 | 3 | 5
(2 rows)