【问题标题】:How to find if location points set contains points with distance larger than 1 km如何查找位置点集是否包含距离大于 1 公里的点
【发布时间】:2014-07-01 14:55:16
【问题描述】:

我有一组用户,每个用户都有一组由经纬度表示的点(n~5000)。 我需要找到静态用户。我所说的“静态”是指没有相距超过 1 公里的点对的用户。最好的算法是什么?

【问题讨论】:

    标签: algorithm geolocation distance


    【解决方案1】:

    一组点中任意一对点之间的最大距离称为该组的直径

    这是一种基于凸包的有效算法,用于解决此问题:

    由于您可能不关心这里的准确性,因此只需找到所有点的最小和最大纬度和经度,并测试由这些极值定义的框的一侧是否大于某些点会更容易临界点。假设您不关心北极或南极附近的用户,则此方法有效。

    【讨论】:

    • Thx :) 你能详细说明第二个算法吗?我不确定我是否理解为什么计算盒子的侧面并假设它是一个很好的近似值是正确的。你的意思是我应该计算对角线吗? (我猜不是,我只是想了解)
    • 好吧,方盒子的对角线只是 sqrt(2) 乘以边长。因此,假设您不关心 50% 左右的因素,那就没关系了。
    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多