我有一个包含大量车辆位置数据的PostGIS表,并希望从这些点创建线。
可以按车辆ID选择数据并按时间戳排序数据,但是如何根据结果创建行呢?
我基本上需要的是从点1到点2的一条线段,最终确定该线,然后再从点2到点3进行线段。当然,所有这些都需要考虑车辆ID。
后一种是必需的,因为我想计算车辆从一点到另一点的巡航方向和速度。
1
一旦计算出GROUP BY vehicle_id和ORDER BY时间戳记,ST_MakeLine()函数将执行此操作。参见:postgis.refractions.net/docs/ST_MakeLine.html
—
Micha
好吧,我只是尝试一下并发出以下声明:
—
托马斯·贝克尔
SELECT ais_data.mmsi, ST_MakeLine(ais_data.geom) AS newgeom INTO ais_lines FROM (SELECT * FROM ais_data ORDER BY ais_data.mmsi, ais_data.bs_ts ASC) AS ais_data GROUP BY ais_data.mmsi;
这将使我了解每辆车的行驶轨迹,而这并不是我所需要的。如何告诉ST_MakeLine()创建从点1到点2的线,最终确定该线并从点2到点3开始新的线...?
什么是“点1”,“点2”,“点3”?您如何识别它们?
—
Micha
我想通过时间戳的顺序来识别它们...-
—
托马斯·贝克尔
ORDER BY ais_data.bs_ts
可能吗?因此,点1,点2等基本上是每行作为Select语句的结果给出的点信息。