我有一个场景:我有一些GPS轨迹(经度,纬度)的数据,这些数据包含在两个部分中
第一部分包含数据(经度和纬度),它们是行程站点(这些是实际坐标,在公交车开始行程时必须访问它们)
第二部分包含GPS坐标(经度和纬度),但可能比第一部分多2倍。每次当公共汽车开始它的旅程时,它都会在这些站点停留(这些站点的坐标已经给出了)。我想通过比较访问过的GPS站点(实时坐标)和第一部分(计划坐标)来比较公交车是否完成了行程。
但我的问题是:
我在第二部分中几乎有两个坐标,所有这些坐标都非常接近,几乎5-8个坐标代表同一站点。(例如104578,105888 )和( 104579,105890 )
什么是正确和可能的方式来声明某些协管人代表同一车站。这个问题可能可以使用K近邻或K均值以某种方式解决。
这个问题似乎不太好,我想在query上我会试着解释更多。defined..But。
发布于 2012-11-26 03:06:51
您是否考虑过使用简单的阈值方法?例如,将坐标与一定距离合并?看起来你很有能力选择这样一个门槛。
集群的问题是,它会试图发现数据集中的结构。
你似乎感兴趣的是,在一定距离内的对象的简单合并。没有你想要发现的“结构”。你想做预处理,而不是集群。
发布于 2012-11-26 02:13:27
您可以将空间索引与后面lng对一起使用。然后,您可以查找曲线上的闭合点,并将它们组合在一起。空间索引通常是空间填充曲线或四叉树。它使用一个四元键来索引2维,并将其缩减为1维。它还保留了一些空间信息,并可用于许多事情。在Nick的空间索引四叉树希尔伯特博客中了解更多。
发布于 2012-11-26 00:20:21
创建一个凸壳多边形的第二部分坐标,可能有一个缓冲区,以便它占用更大的区域,以便您可以考虑GPS误差,并在多边形搜索中进行点搜索。
或者仅使用以排定的点为中心的半径距离。
https://stackoverflow.com/questions/13552726
复制相似问题