2010-10-18 4 views
0

J'ai la latitude et la longitude de deux endroits. Puis-je calculer la distance entre eux dans Android?La distance Calcul de deux places

+1

double possible [Comment puis-je calculer la distance entre deux points GPS en Java?] (http://stackoverflow.com/questions/3715521/how-can-i-calculate-the-distance-between-two-gps-points-in-java) – gbjbaanb

Répondre

4

Qu'est-ce que vous cherchez est la formule Haversine qui donne la distance entre deux points sur une sphère en utilisant leurs latitudes et longitudes.

Haversine Formule:

R = rayon de la Terre (rayon moyen = de 6.371 km)
Δlat = lat2 - lat1
Δlong = long2 - long1
a = sin² (Δlat/2) + cos (LAT1) * cos (LAT2) * sin² (Δlong/2)
c = 2 * atan2 (√a, √ (1-a))
d = R * c

En JavaScript:

var R = 6371; // km 
var dLat = (lat2-lat1).toRad(); 
var dLon = (lon2-lon1).toRad(); 
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
     Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
     Math.sin(dLon/2) * Math.sin(dLon/2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c; 

http://www.movable-type.co.uk/scripts/latlong.html

Questions connexes