【发布时间】:2012-03-25 18:27:16
【问题描述】:
我有一个带有坐标(经度和纬度)的 ArrayList。我想计算坐标之间的距离。
for(Winkel winkel: winkels){
Projection projection = mv.getProjection();
ArrayList<Winkel> cluster = new ArrayList<Winkel>();
winkels.remove(winkel);
for(Winkel item: winkels){
//GetLocations
if(Math.sqrt(Math.pow((point.x - point1.x), 2) + Math.pow((point.y - point1.y), 2)) < 100){
cluster.add(item);
winkels.remove(item);
}
}
}
编辑:我编辑了代码。如果我得到第二次到第一次。我收到一个错误:
03-08 10:01:27.419: E/AndroidRuntime(10572):
java.lang.RuntimeException: Unable to start activity ComponentInfo{be.oww.app/be.oww.app.WinkelsTabActivity}:
java.lang.RuntimeException: Unable to start activity ComponentInfo{be.oww.app/be.oww.app.MapsTabActivitiy}:
java.util.ConcurrentModificationException
03-08 10:01:27.419: E/AndroidRuntime(10572):
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1821)
...
【问题讨论】:
-
您可能不太了解 Java 中的
Collection Framework。 -
作为风格点(与您的问题无关),您可能应该在 Winkel 上编写将 X 和 Y 坐标返回为 Doubles 的方法,其中包含代码
Double.parseDouble(item.getCoordinaten().split(",")[0]) * 1E6,这样您就不必重复每次您需要该信息时,该 sn-p。 -
为什么没有问题的帖子有这么多答案?
标签: java arrays for-loop arraylist while-loop