当我启动locationService时,我遇到了接收错误坐标的问题。 onLocationChanged返回距离手机实际位置100-2000米的点。这是无法接受的!这些点的准确度在20-90之间。 我的设置是这样的。
googleApiClient.connect();
locationRequest = new LocationRequest();
locationRequest.setInterval(2000);
locationRequest.setFastestInterval(1000);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setSmallestDisplacement(1f);
return START_NOT_STICKY;
我写了一个过滤器,可以切断有故障的点,但是有一些可能性,这个过滤器不起作用。
if (points.size() == 1 && prevLocation != null) {
float maxDistance = 100f;
if (location.distanceTo(prevLocation) > maxDistance || location.getAccuracy()>MAX_ACCURACY) { //second point too far from first one
points.clear();
dbHelper.removeFirstPoint(track.getGuid());
}
}
有没有人遇到同样的问题,或者只是知道为什么会发生这种事情。 我认为这个问题是由基于GSM或WIFI位置的响应引起的