2010-08-05 24 views
5

Hola im trabajando en una aplicación que utilizan el GPS Mis dispositivos de prueba son Nexus One y HTC myTouch 3G Slidemejorar la precisión del GPS Android

Así que ¿alguien sabe cómo mejorar la precisión del GPS?

Respuesta

4

ver este post: Google Maps & apps with mapview have different current positions

¿Estás hablando de su propio MapView witin su aplicación o la aplicación de Google Maps? En su propio mapa, use el proveedor de red y el proveedor gps para obtener la ubicación. Gps solo funciona al aire libre bajo cielo libre y es más preciso, mientras que un proveedor de red también funciona en interiores pero es menos preciso.

También lea esto: http://forum.sdx-developers.com/android-2-1-development/cdma-lockup-wifi-use-wireless-networks-and-gps!/msg22834/#msg22834

4

Desde API 9 se puede utilizar unas constantes para la setAccuracy método

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

ACCURACY_HIGH menos de 100 metros
ACCURACY_MEDIUM entre 100 - 500 metros
ACCURACY_LOW superior a 500 metros

aquí son los details

4

Si bien es cierto que desde la API 9 hay algunas nuevas posibilidades en términos de ajustes de precisión, lo que @dev mz dicho que no va a funcionar. No puede usar las nuevas constantes directamente en criteria.setAccuracy. En su lugar puede utilizar estas nuevas características como esto:

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

cuanto a su pregunta, tenga en cuenta que estamos hablando de criterios para las actualizaciones de ubicación entrantes. En realidad, esto no mejorará la calidad de los datos del GPS porque es específico del dispositivo/hardware/red. Simplemente actúa como un filtro para las geolocalizaciones entrantes.

Cuestiones relacionadas