2010-10-18 149 views
0

我有两个地方的经纬度。我可以在android中计算它们之间的距离吗?两地的距离计算

+1

可能重复Java中两个gps点之间的距离?](http://stackoverflow.com/questions/3715521/how-can-i-calculate-the-distance-between-two-gps-points-in-java) – gbjbaanb 2010-10-18 12:16:30

回答

4

你在找什么是haversine公式这给使用他们的纬度和经度球体两点之间的距离。

haversine公式:

R =地球半径(平均半径=6371公里)
Δlat= LAT2 - LAT1
Δlong= long2 - long1
一个=sin²(Δlat/ 2)+ COS(LAT1) * COS(LAT2)*sin²(Δlong/ 2)
C = 2 * ATAN2(√A,√(1-a))的
d = R * C

在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