2010-10-18 246 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