我有很多来自GPS设备的记录,我需要在地图上显示为一条路线。当记录之间的时间不超过5分钟时,记录合并一条路由。
假设我的数据库如下所示:
id date
------- ---------------------
1 2013-01-10 11:00:00.0
2 2013-01-10 11:01:15.0
3 2013-01-10 11:02:15.0
4 2013-01-10 11:03:15.0
5 2013-01-10 11:04:45.0
6 2013-01-10 11:15:00.0
7 2013-01-10 12:00:00.0
8 2013-01-10 12:00:50.0在这种情况下,记录1-5和7-8需要形成路由。
我试图为此编写一个查询,但我被卡住了。我设法在数据库之后执行了操作,但这不是您想要的(您必须检索所有记录等)。
有人有解决这个问题的办法吗?
发布于 2013-03-20 15:14:54
您可以通过简单地将每个条目与其后续条目进行比较来获得各个片段
SELECT
f.ID AS from_ID,
t.ID AS to_ID
FROM
GPSTable AS f
JOIN GPSTable AS t
ON f.ID = t.ID-1
WHERE
TIMESTAMPDIFF(SECOND, f.Date, t.Date) < 300
;如果存在一个条目(A,B)和另一个条目(B,C),您就知道您有一个来自(A->B->C)的路径。
下一步是收集所有这些路径段。这可以通过递归查询来完成,但我不熟悉mySQL。
https://stackoverflow.com/questions/15517320
复制相似问题