我有一个可以获取用户gps位置的应用。问题是现在它有点不准确(它显示我在20-60米的不同建筑物)
这是我的代码
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String bestProvider = locationManager.getBestProvider(criteria,
false);
LocationListener loc_listener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
};
try {
Looper.prepare();
locationManager.requestLocationUpdates(bestProvider, 0, 0,
loc_listener);
} catch (Exception e) {
e.printStackTrace();
}
Location location = locationManager
.getLastKnownLocation(bestProvider);
我相信我应该在发送location.getLatitude()和location.getLongitude()之前至少等待一秒钟。现在等待时间几乎是即时的,但准确性相当不错。我正在使用我的
答案 0 :(得分:2)
GPS芯片提供的每个位置更新都具有准确度值。你应该考虑丢弃超过阈值的那些。
然而,在室内GPS难以获得信号,因此如果它甚至设法锁定,准确性将会降低!