如何使用 fusedLocation 获得良好的准确性?

Posted

技术标签:

【中文标题】如何使用 fusedLocation 获得良好的准确性?【英文标题】:How to get a good accuracy using 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);

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

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

【问题讨论】:

【参考方案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。我确实知道准确性不会很好,但有这么多似乎很奇怪。谢谢你的回答。

以上是关于如何使用 fusedLocation 获得良好的准确性?的主要内容,如果未能解决你的问题,请参考以下文章

手机号怎么选?要上大学的准大学生来看一眼吧

在 Android 8.0.0 Oreo 中无法获取位置

如何使用 ORB 获得良好的 Homography?

FusedLocation 不会触发 android api <= 21 的 locationcallback

如何使用 twain/emgu/open cv 获得良好的清晰度?

fusedLocation API 间隔与关闭 GPS 无线电有何关系