Jquery 如何计算两个地理位置之间的角度?
我正在用Phonegape和jQuery mobile为Android智能手机构建一个应用程序 我想构建一个应用程序,它使用一个指向给定地理位置的箭头,这样用户就知道他/她必须朝哪个方向到达该点。Jquery 如何计算两个地理位置之间的角度?,jquery,android,navigation,angle,geopositioning,Jquery,Android,Navigation,Angle,Geopositioning,我正在用Phonegape和jQuery mobile为Android智能手机构建一个应用程序 我想构建一个应用程序,它使用一个指向给定地理位置的箭头,这样用户就知道他/她必须朝哪个方向到达该点。 因此,我需要一个函数或公式来确定与目标地理位置的角度(最好以度为单位)。有人知道我怎么做吗 你要找的是所谓的方位角,即给定物体与北方之间的角度 要找到该角度,请使用以下公式:a=arctan(|(y2-y1)/(x2-x1)|)*180/pi,其中点a为(y2,x2),点B为(y1,x1) 至于如何在
因此,我需要一个函数或公式来确定与目标地理位置的角度(最好以度为单位)。有人知道我怎么做吗 你要找的是所谓的方位角,即给定物体与北方之间的角度 要找到该角度,请使用以下公式:
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())
嘿,迈克尔,谢谢你的回复!所以我必须确定两个位置的方位角,然后我可以确定位置1到位置2的角度,对吗?不,你看,一旦你得到两个点的XY(或笛卡尔坐标,相同的东西)坐标,你就把它们插入公式,得到北边和连接两个点的线之间的角度。假设你站在坐标为(100100)的A点,你想去坐标为(200200)的B点。将这些值插入公式中,以找到您应该行走的角度:
a=arctan(|(200-100)\(200-100)|)=arctan(| 100\100 |)=arctan 1=0.78
这意味着您应该从a点到B点0.78度。好的,对不起,这是错误的。得到的结果是弧度(测量角度的另一种形式)。你需要做的是将结果乘以180/pi。在我们的例子中,这将给你45度,这更有意义。一个修正的公式:“A=arctan(|(y2-y1)/(x2-x1)|)*180\pi‘好的,我用javascriptvar-dLat=rad(200-100)构建你的公式;var-dLon=rad(200-100);var a=数学atan2(dLat,dLon)代码>这很好,但是如果我使用地理位置,返回值是不可能的。如果我们不使用地理距离,并且计算这些距离并不简单,那么这将非常接近我们得到的极点。使用欧几里德(数字deltaX,deltaY)在欧洲/丹麦相当便宜。请参阅我答案中的代码。