我有以下代码,看起来运行良好:
更新2:
我本来不想设立赏金,但我认为最好完全理解这里发生了什么,并看看我的方法是否过度。尽管我有3米的精度,但我的坐标仍然存在抖动问题。现在这可能是由于可用卫星等原因。我不知道,但基本上我试图了解所有这些其他应用程序,特别是运动应用程序,如何在相同情况下获得如此平滑的读数。
我在Quora上找到了这个Does any running app have a feature of filtering GPS data to get more accurate tracking?。不幸的是,它没有对我的问题提供太多见解,除非你想使用卡尔曼滤波器,但肯定有更简单的方法,因为我怀疑大多数应用程序都没有实现这一点。
无论如何,如果有开发人员愿意分享他们正在使用的一些伪代码,那将非常感激。我的意思是,如果我被困在卡尔曼滤波器中,我就会这样做,但我肯定有更容易实现的算法,并希望学习这些算法以及如何实现它们,这些算法是比较合适的。
// GPS Reader
// Criteria
Criteria criteria = new Criteria();
//criteria.setAccuracy(Criteria.ACCURACY_COARSE); // Used when we can't get a GPS Fix
criteria.setAccuracy(Criteria.ACCURACY_FINE); // Used when we can get a GPS Fix
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
LocationListener locationListener = new MyLocationListener();
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0,
locationListener);
然而,当我在Google地图上绘制我收集的数据时,GPS坐标有时非常分散,在我行走的某些路径上一切正常,突然间跳到一英里外的某个点,然后再跳回来。有没有什么方法可以解决这个问题?可能需要进行某种精度检查吗?
更新:
Basically my problem looks like this as an example - GPS Jitter 更新2:
我本来不想设立赏金,但我认为最好完全理解这里发生了什么,并看看我的方法是否过度。尽管我有3米的精度,但我的坐标仍然存在抖动问题。现在这可能是由于可用卫星等原因。我不知道,但基本上我试图了解所有这些其他应用程序,特别是运动应用程序,如何在相同情况下获得如此平滑的读数。
我在Quora上找到了这个Does any running app have a feature of filtering GPS data to get more accurate tracking?。不幸的是,它没有对我的问题提供太多见解,除非你想使用卡尔曼滤波器,但肯定有更简单的方法,因为我怀疑大多数应用程序都没有实现这一点。
无论如何,如果有开发人员愿意分享他们正在使用的一些伪代码,那将非常感激。我的意思是,如果我被困在卡尔曼滤波器中,我就会这样做,但我肯定有更容易实现的算法,并希望学习这些算法以及如何实现它们,这些算法是比较合适的。
背景:这是一个移动式的行人应用程序。
相关的SO问题,我试图从中获取信息 如何从一系列GPS坐标创建平滑曲线 平滑gps数据:这是一个很好的开始,但我不确定我需要实现什么伪代码才能使最小二乘法适当地工作,以便我将拥有一个样条GPS数据,然后可以在类似谷歌地图的东西上查看以确认我正确地完成了它。我认为问题在于,如果我处理的是一般的X和Y数据而不是GEO坐标,我可以编写一些Matlab代码进行测试并继续进行。
更新3
收到的混乱GPS数据的图像 https://www.dropbox.com/s/ilsf8snao2no65e/gpsdata2.png