【发布时间】:2019-06-03 06:18:40
【问题描述】:
我正在使用 Google 的 fusedlocationproviderclient 使用前台服务在 android 上实时跟踪用户的位置。 我注意到有时 fusedlocationproviderclient 连续多次返回相同的位置。 截至目前我观察到,有时 fusedlocationproviderclient 返回非常不准确的位置 (大约 700m)。
之前我曾经使用 Location_Services 跟踪位置,但为了减少电池消耗,我改用了 fusedlocationproviderclient。 我已将 fusedlocationproviderclient 优先级设置为高精度。 我已将 minDisplacement 设置为 100m。
这是我的位置对象
private void createLocationRequest() {
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(10000);
mLocationRequest.setFastestInterval(10000);
mLocationRequest.setSmallestDisplacement(100);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
我希望它应该返回准确的位置。 当我在静态地图上显示跟踪位置时,由于位置不正确,地图中会出现一条直线。
【问题讨论】:
-
我刚刚开始使用 FusedLocationProviderClient 走这条路。但似乎如果您想要更准确的结果,请使用您的 LocationRequest 设置。创建一个允许您动态更改这些设置的测试应用程序。我发现在前台应用程序中,Interval=1000 和 FastestInterval=500 会产生最好的结果。也最小位移约20m。在任何一种情况下,无论出于何种原因,更改这些参数都会更改回调中返回的位置的准确性。
标签: android google-api location android-location fusedlocationproviderclient