将附近的位置聚集到一个点,并忽略远处的位置

Posted

技术标签:

【中文标题】将附近的位置聚集到一个点,并忽略远处的位置【英文标题】:Cluster nearby locations to one point and leave out locations which are far 【发布时间】:2019-12-17 23:23:18 【问题描述】:

我正在尝试制作一种算法,在该算法中,我想将所有附近的坐标(即纬度和经度)聚集到一个点,然后忽略所有剩余的坐标。当剩余坐标与所有邻近坐标形成的簇之间的距离减小到一定程度时,剩余坐标应在簇内合并。我对这种东西很陌生,如果有人帮助我,我将不胜感激。

例如,对于公共汽车跟踪应用程序,如果在公共汽车站,借助应用程序提供的定位服务将多个人的坐标存储在服务器中,这些附近的坐标应该形成一个集群,以便当这些人乘坐公共汽车,其他公共汽车站的人(他们的坐标将是剩余的)可以在地图上形成的集群的帮助下跟踪公共汽车的位置。当集群接近剩余坐标时,即当公交车即将到达下一个公交车站时,剩余坐标应该在集群内部合并。

【问题讨论】:

到目前为止你尝试了什么? 老实说,我什么也想不通,因为我不知道如何对特定数据集进行聚类。 【参考方案1】:

这不是聚类分析。您不是在尝试发现未知结构。

相反,您的结构是预定义的(公交车站位置),如果距离足够近,您希望将对象分配到最近的站点。

那是一个简单的邻域查询,没有统计结构发现。如果你有一个好的数据库系统,那么你可以做一个(非正式语法)“选择距离(用户,巴士站)

【讨论】:

所以我假设我的数据库中有所有用户位置的数据,现在我想计算每个用户坐标附近的所有用户坐标的质心(并在地图上显示一个标记)其他和较远的坐标不应包含在质心内。我该怎么做? 选择要包含的数据,计算平均坐标。 我输入了一些随机数据并在mysql中创建了一个表。数据包含一些随机名称以及从谷歌地图中获取的准确的纬度和经度。然后我使用Haversine公式搜索附近和100米距离内的所有坐标。现在我想做的是我想在我的应用程序上标记一个标记,它将表示从表中选择的所有位置的质心。 继续之前的评论:例如,我选择了距离公交车站 100 米半径范围内的所有坐标。现在所有选择的坐标都必须转换为质心,以便我们可以在应用程序上显示一个标记。然后,该质心将向用户显示停靠在公共汽车站的公共汽车的位置。你现在可能已经猜到我正在尝试创建一个公共汽车跟踪系统。我没有直接使用司机位置,而是尝试创建一个算法,该算法将使用乘客位置显示巴士位置。 如果您正在为公交车处理足够的本地数据,请使用 UTM 投影,而不是球面上的半正弦。

以上是关于将附近的位置聚集到一个点,并忽略远处的位置的主要内容,如果未能解决你的问题,请参考以下文章

如何通过经纬度坐标获取附近的地址信息?

MySQL:多个纬度和经度的附近位置

翻译20 视差-Parallax

如何使用 MVVM 架构编写核心位置并执行单元测试?

创建Google地球,例如球体导航

如何将地理位置添加到 OSQA?