【问题标题】:How to get a good accuracy using fusedLocation?如何使用 fusedLocation 获得良好的准确性?
【发布时间】:2019-01-01 23:20:13
【问题描述】:

在我的应用中,我需要跟踪用户位置。为此,我使用FusedLocation,每隔 10 秒查询一次位置。不幸的是,返回的位置精度为 500.0 米或 164O 英尺。在Android FusedLocation doc 中规定

精确到几英尺的位置更新

我的请求设置为:

    LocationRequest locationRequest = new LocationRequest();
    locationRequest.setSmallestDisplacement(10);
    locationRequest.setInterval(30000); // 30 s 
    locationRequest.setFastestInterval(10000); // 10 s
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

另外,我正在请求粗略和精细位置的许可。

我怎样才能获得更好的准确性?

【问题讨论】:

    标签: android location fusedlocationproviderapi android-fusedlocation


    【解决方案1】:

    也许您可以尝试从NETWORK_PROVIDER 询问位置,这有助于我解决用户最后已知位置的问题。

    我是这样处理的:

    LocationManager locationManager;
    locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, locationListener);
    Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    LatLng userLocation = new LatLng(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude());
    

    如果这对你有帮助,请告诉我:)

    最好的问候,

    迪米塔尔·格奥尔基耶夫

    【讨论】:

    • 我正在使用 Google Play 服务而不是 Android 框架位置,因为性能更高(位置和电池)。使用 Network-provider 确实提供了更好的精度(使用 locationRequest),但我不需要网络连接,而且当我使用网络时,我的精度为 500m。我确实知道准确性不会很好,但有这么多似乎很奇怪。谢谢你的回答。
    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2016-08-26
    • 1970-01-01
    • 2020-06-01
    • 2017-09-25
    相关资源
    最近更新 更多