Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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
Android 利用GPS点云计算距离_Android_Google Maps_Gps_Distance - Fatal编程技术网

Android 利用GPS点云计算距离

Android 利用GPS点云计算距离,android,google-maps,gps,distance,Android,Google Maps,Gps,Distance,我有一个android应用程序,其中我试图使用GPS提供的坐标计算行驶距离。我目前使用的方法是计算地球上两点之间的弧长 public void onLocationChanged(Location location) { Location loc= new Location(""); loc.setLatitude(prev_latitude); loc.setLongitude(prev_longitude); distance+=location.distanceTo(loc); ...

我有一个android应用程序,其中我试图使用GPS提供的坐标计算行驶距离。我目前使用的方法是计算地球上两点之间的弧长

public void onLocationChanged(Location location) 
{
Location loc= new Location("");
loc.setLatitude(prev_latitude);
loc.setLongitude(prev_longitude);
distance+=location.distanceTo(loc);
...
}
此外,一旦完成此操作,上一个{纬度,经度}将设置为当前纬度/经度

然后将获得的圆弧距离添加到累计距离(代码的最后一行)。 现在,如果GPS接收足够好,并且我们有足够的精度,这种方法可以很好地工作。一旦获得的坐标的精度变差,这些点就开始偏离实际位置,所有这些误差都会整合到总距离中。 android或单独的java库中是否有功能自动过滤错误并将正确的点/轨迹与一组原始GPS测量值相匹配,从而获得准确的行驶距离估计? 如果没有这样一个图书馆,人们将如何解决这个问题? 参考下图。Android中提供的方法,现在正在使用,用蓝线表示。它分别计算后续坐标之间的距离。由于误差,距离不正确。实际路径显示为红色


你问了两个问题:

第一个问题的答案是:不,没有内置的过滤功能来过滤坏的GPS位置,你必须自己去做

(二) 过滤取决于应用需求:无论是仅针对车辆,还是针对行人

根据您的应用程序需要,您可以开发自己的过滤算法。 对于车辆,一种简单的方法是忽略位置速度低于某个阈值的所有位置。(GPS以低速跳跃)。

此外,如果未达到最低精度阈值(您定义的),您可以查看location.gethoriconataclacity并忽略该位置。

尝试阅读此文章,可能会对您有所帮助。例如,对于步行来说,最好的做法是收集一定时间内的点,并尝试将函数(多项式?)拟合到数据中?