【问题标题】:android - LocationManager vs FusedLocationandroid - LocationManager 与 FusedLocation
【发布时间】:2015-01-10 10:59:37
【问题描述】:

我尝试了 Fused Location (GoogleApiClient),但在获取位置时它不准确,即使我要求新的(当前)位置,它也给了我以前的位置,我要求了 10 个请求(为了与可能),但在 4-6 次之后,它就停止了请求,而它确实得到的请求非常不准确(881m 精度)。

另一方面,当使用 LocationManager 时,它总是或多或少地告诉我我的位置,它不会无缘无故地停在中间,而且总体上更稳定。

那么融合位置在哪些方面比位置管理器更好?

【问题讨论】:

    标签: android location


    【解决方案1】:

    奇怪!!! 融合位置应该更快并且应该提供更准确的位置。

    确保您正在请求位置更新

    LocationServices.FusedLocationApi.requestLocationUpdates(
        mGoogleApiClient, mLocationRequest, this
    );
    

    而不是获取最后一个已知位置

    mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
        mGoogleApiClient
    );
    

    你正在使用LocationRequest.PRIORITY_HIGH_ACCURACY(GPS)。

    Fused LocationLocation Manager 的主要区别在于后者不依赖于 Google Play 服务

    【讨论】:

    • 你刚刚给了我另一个使用 LocationManager 的理由 :) 我做了你写的一切,融合位置更快,毫无疑问,但我正在寻找准确性,而不是速度。我站在窗户附近(部分在室内)。我在融合位置和位置管理器的 OnLocationChanged 中进行了调试,第一个在感觉准确度为 881 时停止。使用位置管理器,它仅在我告诉它(10 次后)停止请求并且精度为 39m 和位置很完美!
    • Fused Location 更准确.....我两者都用过,我发现Fused Location 启动应用程序后立即获取位置,Location Manager 我不得不等待 2 -5 分钟。 Location Manager 虽然更容易。至少让您的 Fused Location 代码正常工作。
    • 我站在一个地方询问我的位置。还可以。我走路时也试过,位置和以前一样。我以为我走错了,所以我关闭了我的应用程序,走了 200m 并重新打开它再试一次。第一次,给了我以前的位置(200m 前),再试一次,给了我当前的位置。
    【解决方案2】:

    融合位置不适用于新手机,或者如果有人从未使用过 google.maps 来获取路线。

    要获得融合定位工作,您必须要求用户打开一次谷歌地图并获取我的位置..但是一旦完成,那么融合定位是最好的。

    但是对于任何应用程序中的位置查找器,我们可以使用 mylocation 层,即使手机或用户从未接触过地图,它也能提供准确的结果..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-25
      • 2013-03-18
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 1970-01-01
      • 2014-06-26
      相关资源
      最近更新 更多