我有一个Android应用程序,我试图使用GPS提供的坐标来计算旅行的距离。我目前正在使用计算地球上两点之间的弧长的方法。使用GPS点云计算距离
public void onLocationChanged(Location location)
{
Location loc= new Location("");
loc.setLatitude(prev_latitude);
loc.setLongitude(prev_longitude);
distance+=location.distanceTo(loc);
...
}
此外,一旦完成,prev_ {纬度,经度}被设置为当前的纬度/经度。
然后将获得的圆弧距离加到累计距离(代码的最后一行)。 现在,如果GPS接收足够好并且我们有足够的准确度,这种方法可以很好地工作。一旦获得的坐标精度变差,这些点就开始偏离实际位置,并且所有这些误差都被整合到总距离中。 在android或单独的java库中是否有一个函数可以自动过滤错误,并将正确的点/轨迹适合一组原始GPS测量值,从而获得精确估计的行驶距离? 如果这样的图书馆不存在,会如何解决这个问题? 请参阅下图以供参考。蓝色线显示Android中提供的方法,现在正在使用该方法。它计算后续坐标之间的距离。由于错误,距离不正确。实际路径显示为红色。
试着阅读这篇文章,也许会帮助你。 http://stackoverflow.com/questions/3412416/improve-gps-accuracy-android – totonho