2010-11-01 15 views
3

Je suis en train de mettre en œuvre une application pour rechercher les sites locaux les plus proches à partir d'une base de données de coordonnées GPS.distanceTo() distance de retour pas en mètres!

J'utilise la fonction de classe de position distanceTo() pour calculer la distance entre deux emplacement l'actuel et celui de la base de données.

currentloc.setLatitude(loc.getLatitude()); 
currentloc.setLongitude(loc.getLongitude()); 

dbcurrent.setLatitude(C.getDouble(latindex)); 
dbcurrent.setLongitude(C.getDouble(lonindex)); 
distance = currentloc.distanceTo(dbcurrent); 

ce beau travail et je suis en mesure d'utiliser cette distance pour calculer la proximité dans le reste de mon application, mais la distance elle-même est apparemment pas en mètres que je reçois résultat comme 4.134.801,4 je suis sûr que la distance est 3200mètres dans ce cas.

Existe-t-il une explication ou une solution à ce problème?

merci à tous.

+0

Commencez par vérifier vos valeurs pour vous assurer qu'elles sont correctes. Ensuite, faites un appel d'essai où vous obtenez la distance pour peut-être une seconde de différence de longitude. Voyez ce qui se passe. –

+1

duplication possible de [Android: Location.distance pour ne pas fonctionner correctement?] (Http://stackoverflow.com/questions/531324/android-location-distanceto-not-working-correctly) –

+0

Vous vous demandez comment cette autre question en double a peut-être été manquée dans l'examen des questions existantes le SO fait avant de demander? –

Répondre

0

distanceTo() fonctionne correctement, c'est de votre faute. De telles distances élevées peuvent se produire si vous fournissez (0,0) comme autre point.