我有两个地方的纬度和经度。我可以在android中计算它们之间的距离吗?
发布于 2010-10-18 20:19:02
你正在寻找的是半正弦公式,它给出了球面上两点之间的距离,使用它们的纬度和经度。
哈维正弦公式:
R=地球半径(平均半径=6371千米)
lat= lat2 lat1Δlat =lat2 lat lat=Δ−lat
long= long2 long1Δ−
A=sin²(long 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
发布于 2010-10-18 20:13:40
发布于 2010-10-18 21:04:50
这就是您想要的接口:
http://developer.android.com/reference/android/location/Location.html#distanceBetween(double,%20double,%20double,%20double,%20float[])
(注:它是静态的.不需要Location对象实例)
https://stackoverflow.com/questions/3958923
复制相似问题