我在主要活动中有以下代码:
LocationManager mlocMan = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
if (mlocMan.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
LocationListener mlocListener = new LocationManagerHelper(...);
mlocMan.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,mlocListener);
} 在位置侦听器中,我有以下内容:(theAccuracy被初始化为-1)
if (theAccuracy == -1 || theAccuracy > loc.getAccuracy()) {
theAccuracy = Math.round(loc.getAccuracy());
latitude = loc.getLatitude();
longitude = loc.getLongitude();
}
updateTimes++;
if (updateTimes == 3) {
mLocMan.removeUpdates(this);
updateTimes = 0;
//get address for location
theAccuracy = -1;
} 意思是,在3次GPS位置更新后,获取最佳准确位置并获取其地址。在模拟器上,我获得了20m的固定精度(我使用DDMS发送长/拉),但这不是真实的生活,所以我尝试使用我的设备,虽然第一次(3次请求)给出了精确的地址(当场),40米的精度,但下一个地址有时更准确,但地址就在附近。我得到的最佳精度是29m (发生过一次),大多数情况下它都在30以上。这是我的全球定位系统(LG G3)的一个问题,还是有任何其他的想法,可以使事情更准确的3-4-5请求?
发布于 2014-11-08 11:44:37
以下几个原因:
https://stackoverflow.com/questions/26816551
复制相似问题