如何计算两个地理位置之间的角度?

问题描述 投票:3回答:2

我正在为具有Phonegape和jQuery mobile的Android智能手机构建应用程序。

我想构建一个使用指向给定地理位置的箭头的应用程序,因此用户知道他/她必须沿哪个方向到达该点。因此,我需要一个函数或公式来确定与目标地理位置的角度(最好以度为单位)。有人知道我该怎么做吗?

jquery android navigation angle geopositioning
2个回答
3
投票

您正在寻找的称为方位角,即给定对象与北方之间的角度。

要找到该角度,您可以使用公式:a = arctan(|(y2-y1)/(x2-x1)|) * 180/pi其中点A为(y2,x2),点B为(y1,x1)。

关于您在代码中的处理方式,我不知道。我不使用这些平台。有人对此有任何意见吗?


0
投票

必须使用测地线距离进行计算,否则计算出的角度将明显偏离,尤其是。越靠近两极。

对于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())

© www.soinside.com 2019 - 2024. All rights reserved.