2013-07-19 2 views
0

au point. J'utilise la méthode de Google Maps Android Api distanceEntre pour saisir la distance entre l'emplacement de l'utilisateur et un point sur la carte comme vous pouvez le voir ici:Google Maps Android Api v2 distanceEntre la méthode innacurate

float[] distance = new float[1]; 
Location currentLocation = PECApplication.getInstance().getLocationClient().getLastLocation(); 
Location.distanceBetween(currentLocation.getLatitude(), currentLocation.getLongitude(), marker.getPosition().latitude, marker.getPosition().longitude, distance); 
TextView distanceView = (TextView) infoWindow.findViewById(R.id.eventDistanceValue); 
distanceView.setText(formatDistance(distance[0])); 

Le problème est que le résultat ne correspond pas au résultat que je reçois à partir du site Web de google maps. Dans l'un des cas, la distance de Google Maps Website était de 31 km et le résultat de la méthode distanceBetween était de 23 328 KM. Quelqu'un a une idée? Merci beaucoup.

+0

Vous pourriez envisager d'afficher les valeurs réelles de latitude et de longitude qui vous ont donné ces résultats. En outre, 'Location' n'a rien à voir avec Maps V2. – CommonsWare

+1

Juste une supposition éclairée: Google Maps vous donnera la longueur du voyage sur les routes, les sentiers, etc, tandis que la méthode 'distanceBetween()' calcule simplement la distance entre deux points "à vol d'oiseau" (ou plus techniquement correcte: déplacement'). Voir aussi: [distanceBetween() renvoie un résultat inexact?] (Http://stackoverflow.com/questions/14618016/distancebetween-returns-inaccurate-result) –

Répondre

1

MH a raison. Si vous voulez obtenir la distance de voyage le long d'une route, vous devez utiliser le service web Google Directions. Vous devez donc faire une requête http avec un point de départ et un point final de votre choix. La réponse est un JSON avec des informations détaillées sur l'itinéraire entre vos points, comme la distance réelle, les instructions étape par étape et bien d'autres.

Voir this question pour quelques détails sur le code.

Questions connexes