【问题标题】:Location speed Getting wrong using fused provider定位速度使用融合提供者出错
【发布时间】:2017-04-02 09:53:54
【问题描述】:

我正在使用具有 PRIORITY_HIGH_ACCURACY 模式的融合位置提供程序进行位置轮询,但有时它会给出错误的位置速度,例如 77 m/s。这是错误的,我如何才能获得正确的位置速度?

位置请求:

        mLocationRequest = new LocationRequest();
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        mLocationRequest.setInterval(6000);
        mLocationRequest.setSmallestDisplacement(80);

加快位置更新速度

        Double lat = location.getLatitude();
        Double lon = location.getLongitude();
        float sd = (float) location.getAltitude();
//        float ac_speed = sd;
        //----- For Testing Purpose---------------//
        float ac_speed = location.getSpeed();

【问题讨论】:

标签: android google-play-services android-fusedlocation


【解决方案1】:

也许您正在使用精度较低的网络提供商,因此将其更改为 GPS 提供商以获得准确的值。

【讨论】:

  • 我已经提到我正在使用具有高精度模式的融合位置提供程序。
  • Fused 应该可以处理这个问题。不幸的是,我还没有找到任何解决方案。请注意,GPS 并不总是一种解决方案。有时,WiFi 更准确(例如,在商场中,或者当设备具有不稳定的 GPS 接收器时,LG G2 就有)。再一次,FUSED 就是为处理这个问题而生的。它具有将两个位置融合在一起的启发式方法。我希望他们在下一个版本的 Google Play 服务中修复它。
  • @AlexS 我认为没有人计划解决它。在 GoogleMaps 上,我走出了一条隧道,看到自己跳了 40 公里(感觉就像 Dr. Who),可能是因为经过了一些带 WiFi 的公共汽车。在我的代码中,我添加了一个“信任”机制,如果它怀疑 Fused,它会强制 GPS。这不是很好,但比过度扭曲我的用户要好。
猜你喜欢
  • 2017-07-01
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
  • 2018-04-24
  • 2013-08-02
  • 2013-09-01
相关资源
最近更新 更多