2010-08-05 124 views
5

IM喜上采用GPS我的测试设备的Nexus One和HTC的MyTouch 3G滑盖提高GPS精度的Android

因此,没有人知道如何提高GPS精度的应用程序的工作?

回答

4

看到这个帖子:Google Maps & apps with mapview have different current positions

你说的是你自己的MapView witin您的应用程序或谷歌地图应用? 在您自己的地图中,使用网络提供商和GPS提供商来获取位置。全球定位系统只能在免费天空下工作,并且更加准确,而网络供应商在室内工作时也不太准确。

而且阅读:http://forum.sdx-developers.com/android-2-1-development/cdma-lockup-wifi-use-wireless-networks-and-gps!/msg22834/#msg22834

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数据的质量,因为这是设备/硬件/网络特定的。它只是用于传入地理位置的过滤器。