融合位置 API 的准确性不佳

Posted

技术标签:

【中文标题】融合位置 API 的准确性不佳【英文标题】:Bad Accuracy in Fused Location Api 【发布时间】:2015-07-07 14:03:53 【问题描述】:

我正在尝试在 android 中做一个“跟踪”应用程序。我正在使用 Fused Location Api,就像在许多不同的网站中所说的那样,我正在根据其准确性过滤位置。

public void onLocationChanged(Location location) 
  if (location.getAccuracy() <= 10.0f && location.hasAccuracy() ) 
    //saveLocation(); or whatever
   

代码比较详细,只是体现思路。

该应用程序在我走路时绘制Polyline,我每 5 秒获得一次位置。如果 GPS 未启用,我会说用户启用它。

问题是(我不允许上传图片,所以我会描述它)我的路径/路线、线路、奇怪的曲线、进入建筑物等......我不知道如何只是保持线路在街上......

如果我更改为“旧”API,使用 locationManager 等,我会收到更好的位置吗?或者Fused Location还有其他方式吗?

谢谢!

【问题讨论】:

也许如果我每 more 秒 tqke 点...这条线会更直。 (但如果我改变方向,它也会穿过建筑物)。我看不到解决方案。 【参考方案1】:

GPS 信号通常非常“嘈杂”。根据我的经验(主要是位置管理器),即使接收器静止,连续的 gps 测量也可以“跳跃”多达 10 m。用折线连接原始数据点可能会显示出非常参差不齐的路径。

我的建议是更快地采样并过滤数据。过滤的方法有很多。例如,您可以简单地平均最近的 N 个纬度值(并对经度执行相同的操作)——“运行平均”过滤器。更复杂的方法将使用有关可能的速度和方向变化的知识(例如,卡尔曼滤波)。

【讨论】:

以上是关于融合位置 API 的准确性不佳的主要内容,如果未能解决你的问题,请参考以下文章

获取棉花糖中的当前位置 0,其中 23 API 以下使用融合位置给出准确的当前位置

融合位置提供程序和“Wi-Fi 和移动网络位置”设置

无法使用 Google 的融合位置 API 获取位置

无法使用融合位置API停止位置更新

融合位置 API 运行时权限错误

我正在使用融合位置 API 在回收视图适配器中查找当前位置,适配器由片段类使用