J'ai utilisé le code suivant pour vérifier les coordonnées GPS, mais le problème est que si je suis au même endroit, les coordonnées changent et la distance est comprise entre 4 et 20 mts. Je veux le changer seulement quand j'ai déménagé min 10 mtrs.Les coordonnées GPS changent trop fréquemment
locationManager_gps = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
locationManager_gps.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0,
new MyLocationListener_gps());
class MyLocationListener_gps implements LocationListener {
public void onLocationChanged(Location location) {
clat = location.getLatitude();
clon = location.getLongitude();
if (clat != plat || clon != plon) {
float[] results = new float[3];
Location.distanceBetween(plat, plon, clat, clon, results);
if (flag_gps == 0) {
flag_gps = 1;
} else {
GeoPoint geoPoint = new GeoPoint((int) (clat * 1E6),
(int) (clon * 1E6));
mapView.getController().animateTo(geoPoint);
draw = new MyOverLay(geoPoint);
mapView.getOverlays().add(draw);
dist_mtr += results[0];
}
plat = clat;
plon = clon;
}
}
Si j'utilise 50 comme la distance minimale entre les mises à jour, alors il fonctionne bien. J'ai aussi essayé de le faire 30 mais aussi des données erronées sur une période de 4 km en voyageant en voiture.
S'il vous plaît suggérer ce que je devrais faire.
J'ai donné une valeur aléatoire à plat et plon ci-dessus dans le code mai et fait flag_gps = 0 juste pour sauter première mise à jour de changement d'emplacement –