2010-08-05 7 views
5

Salut im travailler sur une application qui utilisent le GPS Mes appareils de test sont Nexus One et HTC myTouch 3G Faites glisserGPS améliorer la précision Android

Cela veut-il que quelqu'un sait comment améliorer la précision des GPS?

Répondre

4

voir ce post: Google Maps & apps with mapview have different current positions

Parlez-vous de votre propre MapView witin votre application ou l'application Google Maps? Dans votre propre carte, utilisez le fournisseur de réseau et le fournisseur GPS pour obtenir l'emplacement. Le GPS fonctionne uniquement à ciel ouvert et est plus précis, tandis qu'un fournisseur de réseau travaille à l'intérieur mais moins précis.

lire également ceci: http://forum.sdx-developers.com/android-2-1-development/cdma-lockup-wifi-use-wireless-networks-and-gps!/msg22834/#msg22834

4

Depuis API 9 vous pouvez utiliser des constantes pour la setAccuracy méthode

lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_HIGH); 
lm.getBestProvider(criteria, true); 

ACCURACY_HIGH moins de 100 mètres
ACCURACY_MEDIUM entre 100 - 500 mètres
ACCURACY_LOW supérieure à 500 mètres

ici sont les details

4

Il est vrai que depuis l'API 9 il y a des nouvelles possibilités en termes de réglages de précision, ce qui @dev mz lesdits ne fonctionnera pas. Vous ne pouvez pas utiliser les nouvelles constantes directement dans criteria.setAccuracy. Au lieu de cela, vous pouvez utiliser ces nouvelles fonctionnalités comme ceci:

 //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); 

Quant à votre question, sachez que nous parlons de critères pour les mises à jour de localisation entrants. Cela n'améliorera pas réellement la qualité des données GPS car c'est un appareil/matériel/réseau spécifique. Il agit juste comme un filtre pour les géolocations entrantes.