融合位置的准确性不佳 Api
Bad Accuracy in Fused Location Api
我正在尝试在 Android 中开发一个 "tracking" 应用程序。我正在使用 Fused Location Api,就像在许多不同的网站上所说的那样,我正在根据其准确性过滤位置。
public void onLocationChanged(Location location) {
if (location.getAccuracy() <= 10.0f && location.hasAccuracy() ) {
//saveLocation(); or whatever
}
代码比较详细,只是为了体现思路。
应用程序在我走路时画了一个 Polyline
,我每 5 秒获取一次位置。如果 GPS 未启用,我会告诉用户启用它。
问题是(我不允许上传图片,所以我会描述它)我的 path/route,线,做奇怪的曲线,进入建筑物等......我不'知道如何在街上保持排队...
如果我换成 "old" API,加上 locationManager
等,我会得到更好的位置吗?或者还有另一种方法 Fused Location
?
谢谢!
GPS 信号通常非常 "noisy"。根据我的经验(主要是位置管理器),即使接收器静止不动,连续的 gps 测量也可以 "jump" 多达 10 m。用多段线连接原始数据点很可能会显示非常参差不齐的路径。
我的建议是加快采样速度并过滤数据。过滤的方法有很多种。例如,您可以简单地平均最近的 N 个纬度值(并对经度执行相同的操作)——一个 "running average" 过滤器。一种更复杂的方法将使用有关可能的速度和方向变化的知识(例如,卡尔曼滤波)。
我正在尝试在 Android 中开发一个 "tracking" 应用程序。我正在使用 Fused Location Api,就像在许多不同的网站上所说的那样,我正在根据其准确性过滤位置。
public void onLocationChanged(Location location) {
if (location.getAccuracy() <= 10.0f && location.hasAccuracy() ) {
//saveLocation(); or whatever
}
代码比较详细,只是为了体现思路。
应用程序在我走路时画了一个 Polyline
,我每 5 秒获取一次位置。如果 GPS 未启用,我会告诉用户启用它。
问题是(我不允许上传图片,所以我会描述它)我的 path/route,线,做奇怪的曲线,进入建筑物等......我不'知道如何在街上保持排队...
如果我换成 "old" API,加上 locationManager
等,我会得到更好的位置吗?或者还有另一种方法 Fused Location
?
谢谢!
GPS 信号通常非常 "noisy"。根据我的经验(主要是位置管理器),即使接收器静止不动,连续的 gps 测量也可以 "jump" 多达 10 m。用多段线连接原始数据点很可能会显示非常参差不齐的路径。
我的建议是加快采样速度并过滤数据。过滤的方法有很多种。例如,您可以简单地平均最近的 N 个纬度值(并对经度执行相同的操作)——一个 "running average" 过滤器。一种更复杂的方法将使用有关可能的速度和方向变化的知识(例如,卡尔曼滤波)。