在Java中计算多个地理位置之间的距离
我想知道如何在Java中正确使用Location.distance方法来获得通过多个点的距离 假设你有一个LattudeList和LongtudeList,你会使用一个for=循环遍历它们,那么如何(有效地)使用这个方法呢? 我似乎得到了错误的距离值 我目前使用的代码(虽然很混乱,但似乎还不错):在Java中计算多个地理位置之间的距离,java,android,eclipse,geolocation,distance,Java,Android,Eclipse,Geolocation,Distance,我想知道如何在Java中正确使用Location.distance方法来获得通过多个点的距离 假设你有一个LattudeList和LongtudeList,你会使用一个for=循环遍历它们,那么如何(有效地)使用这个方法呢? 我似乎得到了错误的距离值 我目前使用的代码(虽然很混乱,但似乎还不错): float结果=0; float[]结果列表=新的float[1]; 对于(int k=0;k
float结果=0;
float[]结果列表=新的float[1];
对于(int k=0;k
我做错了什么
谢谢你的帮助。你为什么这么做
result = result+resultat[0] ???
距离在结果列表[0]中时
像这样修改代码
float result = 0;
float[] resultList = new float[1];
for (int k = 0; k < latitudeList.size() - 1; k++)
{
Location.distanceBetween(latitudeList.get(k), longitudeList.get(k), latitudeList.get(k+1), longitudeList.get(k + 1), resultList);
result = result + resultList[0];
}
float结果=0;
float[]结果列表=新的float[1];
对于(int k=0;k
您似乎使用resultat[0]
作为结果值,而distance between(..)方法在resultList[0]
中返回它。此外,无需在每次迭代中创建新的resultList
。对不起,我打错了。我把这个帖子的名字改成了英文,这样这里的用户就可以理解我到底做了什么。。。因此,问题仍然存在:/什么让你认为结果不正确?我可以使用触摸(画线)通过谷歌地图绘制路线,当它穿过另一条线时,开始计算回合。当我在住宅区“走动”时,得到的值介于2和3之间。如果我走到下一个城镇再回来,我会得到大约4或5个。有一次,我做了一次巨大的旅行,跑了大约1.5英里。因此,我希望这里的人能发现我使用distance-between
时的错误,但我担心它在我的代码中的其他地方:/我认为海报也需要更改否,他有n=latitudeList.size()点,但它们之间只有n-1距离。最大k为n-2,因此上一次迭代中的k+1参考点n-2+1,即点n-1。这是正确的,因为列表中的索引是基于0的。对不起,这是一个输入错误。它实际上表示result=result+resultList[0]代码>:(错误似乎存在于其周围的代码中。我将接受此答案,因为答案本身是正确的。谢谢大家:)
float result = 0;
float[] resultList = new float[1];
for (int k = 0; k < latitudeList.size() - 1; k++)
{
Location.distanceBetween(latitudeList.get(k), longitudeList.get(k), latitudeList.get(k+1), longitudeList.get(k + 1), resultList);
result = result + resultList[0];
}