2010-08-05 200 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數據的質量,因爲這是設備/硬件/網絡特定的。它只是用於傳入地理位置的過濾器。