我正在使用GoogleApiClient
获取当前location
以及定期location
更新。
我已经设置了requestLocation参数,如下所示:
private static int UPDATE_INTERVAL = 10000; // 10 sec
private static int FATEST_INTERVAL = 5000; // 5 sec
private static int DISPLACEMENT = 10; // 10 meters
并提出这样的请求:
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
所以我的问题是,当我不移动10米然后它也打电话给我location
。
我希望像谷歌一样完美location
更新,因为我需要相同的。
当我移动到一定距离时,它会给出位置多次。
我必须检查我的应用程序,如果用户不断移动
如果用户移动/通过一段距离,那么我必须检查并做必要的事情。
谢谢。
答案 0 :(得分:1)
地点可能非常不准确(这是您使用距离为10米-100米的固定电话所遇到的情况)。要解决此问题,请检查新位置的准确性。如果精度是40米并且距离lastLocation的距离是50米,那么您就知道已经移动了。但是,如果精确度为100米,则50米的距离不会告诉您确定存在移动。
因此,如果您的位置更新的准确性比频率更重要,您可能需要在使用之前检查位置的准确性。例如:
private Location lastGoodLocation = null;
// Other methods
@Override
public void onLocationChanged(Location loc) {
if (lastGoodLocation == null || lastGoodLocation.distanceTo(loc) > loc.getAccuracy()) {
lastGoodLocation = loc;
// do something with loc
}
}
使用位置更新时,您可能还需要考虑其他strategies。
答案 1 :(得分:0)
在github上查看TripTracker。它会对你有所帮助。