Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中计算多个地理位置之间的距离_Java_Android_Eclipse_Geolocation_Distance - Fatal编程技术网

在Java中计算多个地理位置之间的距离

在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

我想知道如何在Java中正确使用Location.distance方法来获得通过多个点的距离

假设你有一个LattudeList和LongtudeList,你会使用一个for=循环遍历它们,那么如何(有效地)使用这个方法呢? 我似乎得到了错误的距离值

我目前使用的代码(虽然很混乱,但似乎还不错):

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];

}