5
A
回答
4
看到这个帖子:Google Maps & apps with mapview have different current positions
你说的是你自己的MapView witin您的应用程序或谷歌地图应用? 在您自己的地图中,使用网络提供商和GPS提供商来获取位置。全球定位系统只能在免费天空下工作,并且更加准确,而网络供应商在室内工作时也不太准确。
4
由于API 9,你可以使用一些常量,setAccuracy方法
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_HIGH);
lm.getBestProvider(criteria, true);
ACCURACY_HIGH不到100米
ACCURACY_MEDIUM 100之间 - 500米
ACCURACY_LOW更大的超过500米
这里有details
4
虽然这是真的,因为API 9中存在的精度设置,什么@dev MZ表示将不会工作方面有一些新的可能性。您不能直接在criteria.setAccuracy
中使用新的常量。相反,你可以使用这些新功能是这样的:
//All your normal criteria setup
Criteria criteria = new Criteria();
//Use FINE or COARSE (or NO_REQUIREMENT) here
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAltitudeRequired(true);
criteria.setSpeedRequired(true);
criteria.setCostAllowed(true);
criteria.setBearingRequired(true);
//API level 9 and up
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setVerticalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setBearingAccuracy(Criteria.ACCURACY_LOW);
criteria.setSpeedAccuracy(Criteria.ACCURACY_HIGH);
至于你的问题,要知道,我们正在谈论标准传入位置更新。这实际上并不会改善GPS数据的质量,因为这是设备/硬件/网络特定的。它只是用于传入地理位置的过滤器。