您正在开发使用GPS位置的应用。我的测试设备是Nexus One和Htc Mytouch 3g Slide。
那么有谁知道如何提高GPS定位精度?
答案 0 :(得分:4)
请参阅此帖子:Google Maps & apps with mapview have different current positions
您是在谈论自己的应用程序或Google地图应用程序中的MapView吗? 在您自己的地图中,使用网络提供商和gps提供商来获取位置。 Gps只能在自由天空下在室外工作,并且更准确,而网络提供商也可以在室内工作但不太准确。
答案 1 :(得分: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
答案 2 :(得分: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数据的质量,因为这是设备/硬件/网络特定的。它就像过滤地理定位的过滤器一样。