【问题标题】:android group GPS coordinate by postilionandroid group GPS坐标由postilion
【发布时间】:2013-07-25 22:07:17
【问题描述】:

我有 GPS 坐标(经纬度)我想创建组,每个组都包含相同半径内的坐标,我使用此代码获取 2 点之间的距离:-

float radius = (float) 1000.0;
        float distance = loc.distanceTo(loc2);
        if (distance < radius) 
            Toast.makeText(getApplicationContext(), "inside", Toast.LENGTH_LONG).show();
    }

但是使用这段代码,我需要将每个坐标与其余坐标进行比较,以检查哪个坐标最接近,这似乎不够,还有其他方法吗?

提前致谢

【问题讨论】:

  • 我建议你保持简单,检查每个坐标都不错。如果性能确实是一个问题,那么您可以使用排序机制来改进您的算法。
  • 你的组是固定的吗? IE。你有一组固定的点作为组的中心吗?在这种情况下,从 Johannes 提到的简单开始。如果没有。组很大,您可能需要考虑更有效的算法,但除非需要,否则不要这样做。如果组不固定,但您正在寻找“集群”,请考虑使用集群算法。这是一个起点:en.wikipedia.org/wiki/Cluster_analysis

标签: android gps


【解决方案1】:

另一种方法是使用地理空间索引,例如quad tree
在这种情况下,您将首先计算半径内的四边形像元,然后只考虑该像元内的点。

但这是一些编程、搜索和理解工作,所以当对所有点的蛮力搜索速度很慢时,请使用这样的索引。

【讨论】:

    猜你喜欢
    • 2012-12-21
    • 2023-03-22
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 2015-04-10
    相关资源
    最近更新 更多