【发布时间】: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