【发布时间】:2016-09-11 02:28:54
【问题描述】:
我需要计算当前位置和目的地之间的距离。我有当前和目的地位置的纬度和经度。我在搜索时从 SO 和 Internet 中找到了以下代码。但是计算给出了 1366 公里,而谷歌地图给出了 2 个位置之间的 1675 公里。有人可以帮助我如何计算准确的距离。目的地遍布全球,包括我目前所在的城市位置。
//Distance in Kilometers
fun distanceInKms ( lat1: Double, long1: Double, lat2: Double, long2: Double) : Double
{
val degToRad= Math.PI / 180.0;
val phi1 = lat1 * degToRad;
val phi2 = lat2 * degToRad;
val lam1 = long1 * degToRad;
val lam2 = long2 * degToRad;
return 6371.01 * Math.acos( Math.sin(phi1) * Math.sin(phi2) + Math.cos(phi1) * Math.cos(phi2) * Math.cos(lam2 - lam1) );
}
有人可以帮我解决这个问题吗?
【问题讨论】:
-
您要直线距离,还是要曲面距离(圆弧、曲线)?
-
精确距离是什么意思?