Fondue Fournisseur d'Emplacement setsmallestDisplacement ne fonctionne pas sous Android
Salut j'ai mis en œuvre à Fusibles Emplacement Api fournisseur pour obtenir de l'emplacement des mises à jour dans un service. J'ai été en mesure d'obtenir la onlocationchanged événement déclenché selon l'intervalle défini. Cependant lorsque j'ai mis le setsmallestDisplacement à 10 mètres, l'événement est de se faire licencier, même si l'appareil est toujours. Ne un problème semblable. veuillez fournir des suggestions. Ci-dessous est le code
mlocationrequest = LocationRequest.create();
mlocationrequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mlocationrequest.setInterval(60000); //Update location every 1 minute
mlocationrequest.setFastestInterval(10000);
mlocationrequest.setSmallestDisplacement(10);
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mlocationrequest, this);
Pour trouver la distance entre deux valeurs de l'emplacement, j'ai utilisé cette méthode.
public static float distFrom (float lat1, float lng1, float lat2, float lng2 )
{
double earthRadius = 3958.75;
double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLng/2) * Math.sin(dLng/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dist = earthRadius * c;
int meterConversion = 1609;
return new Float(dist * meterConversion).floatValue();
}
Mais je reçois les distances 43.51 , 49.32 , 520.02 même lorsque l'appareil est immobile. Est-ce parce que le comprimé le matin à l'aide à l'intérieur?
OriginalL'auteur hemanth kumar | 2015-01-05
Vous devez vous connecter pour publier un commentaire.
Si le Déplacement est fixé pour LocationRequest, aucune chance d'obtenir les emplacements si l'appareil est encore que le Déplacement prend la préséance sur les Intervalles (interval et fastestInterval).
Comme j'ai pu le deviner - Peut-être que vous avez passé différents LocationRequest objet (pas de déplacement) pour LocationServices.FusedLocationApi.requestLocationUpdates().
Je cherchais une réponse à la façon dont les lignes de crédit sont reçues si les deux d'intervalle et de déplacement. Je viens de vérifié par moi-même à ma demande, et ci-dessous est le comportement de configuration différente pour LocationRequest:
Pas de Déplacement le jeu de paramètres
setInterval est mis à 1 min et la plus rapide à 1 min.
J'ai reçu l'emplacement de chaque minutes. Mais voyez-vous, parfois, il a reçu rapidement et parfois plus lent parce que le setInterval est inexact.
06-03 11:46:55.408 25776-25776/MyLocationListener﹕ onLocationChanged.
06-03 11:47:56.008 25776-25776/MyLocationListener﹕ onLocationChanged.
06-03 11:48:18.768 25776-25776/MyLocationListener﹕ onLocationChanged.
06-03 11:49:22.938 25776-25776/MyLocationListener﹕ onLocationChanged.
06-03 11:50:22.948 25776-25776/MyLocationListener﹕ onLocationChanged.
06-03 11:52:22.978 25776-25776/MyLocationListener﹕ onLocationChanged.
06-03 11:53:22.998 25776-25776/MyLocationListener﹕ onLocationChanged.
Déplacement paramètre est réglé à 10 mètres
setInterval comme ci-dessus 1 minutes.
Pas d'emplacement des mises à jour si l'appareil ne bouge pas ou croix de la distance. Entre chaque onLocationChanged ci-dessous j'ai marché plus de 10 mètres, j'ai donc reçu de la ldc.
06-03 11:26:53.328 16709-16709/MyLocationListener﹕ onLocationChanged.
06-03 11:35:38.318 16709-16709/MyLocationListener﹕ onLocationChanged.
06-03 11:39:16.728 16709-16709/MyLocationListener﹕ onLocationChanged.
cool @GaganDeep
J'ai déplacement fixé à 10, setInterval et setFastestInterval fixé à 3 minutes de retard, mais même avec un mouvement significatif je ne reçois pas régulièrement l'emplacement des mises à jour vous ne savez pas où est le problème?
C'est en fonction de si vous sur la Cellule nw ou WiFi. Si vous êtes en WiFi, vous devez obtenir après 10m à pied. Si vous êtes sur la cellule, essayez de marcher peu plus et de voir.
Dans le 2e scénario, il est nécessaire à la fois la condition doit être répondre?
OriginalL'auteur cgr
Il peut arriver que vous obtenez différents lat-long dans
onLocationChanged
méthode qui décrit plus de déplacement de 10. Si aimablement la caisse de la lat-long qui vous sont arriver et de mesurer la distance une fois manuellement pour contre-vérifier les choses.Outre ci-dessus, une autre raison possible est question de priorité,
Si le cas ci-dessus semble parfait alors essayez comme suit:
Oui, la précision est importante. Vous pouvez la caisse de l'exactitude de l'emplacement que vous obtenez dans
onLocationChanged
méthode. 10m est très petite distance de la piste. et en général, nous avons l'exactitude de 30m, la plupart du temps.OriginalL'auteur Mehul Joisar