我正在用Phonegape和jQuery mobile为Android智能手机构建一个应用程序。
我想建立一个应用程序,使用一个箭头,指向一个给定的地理位置,所以用户知道在哪个方向,他/她必须去到达那个点。
所以我需要一个函数或公式来确定一个角度(最好是度)到目的地地理位置。有人知道我该怎么做吗?
你要找的是方位角,也就是给定物体与北方之间的夹角。
要找到这个角度,你可以使用公式:a = arctan(|(y2-y1)/(x2-x1)|) * 180/pi
其中点A是(y2,x2)点B是(y1,x1)
至于如何在代码中做到这一点,我不知道。我不与这些平台合作。有人对此有什么看法吗?
有必要使用测地线距离进行计算,否则计算出的角度将明显偏离,特别是越靠近极点。
对于android,它可以简单地这样做。
data class GpsLocation(
val latitude: Float, // Runs from south-pole to north pole
val longitude: Float // Runs East-West
)
fun GpsLocation.toLocation(): Location {
val location = Location(LocationManager.PASSIVE_PROVIDER)
location.latitude = latitude.toDouble()
location.longitude = longitude.toDouble()
//location.time = System.currentTimeMillis()
return location
}
fun GpsLocation.angleToOther(other: GpsLocation): Float =
toLocation().bearingTo(other.toLocation())