Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何计算两个地理位置之间的角度?_Jquery_Android_Navigation_Angle_Geopositioning - Fatal编程技术网

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

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) 至于如何在

我正在用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())


嘿,迈克尔,谢谢你的回复!所以我必须确定两个位置的方位角,然后我可以确定位置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‘好的,我用javascript
var-dLat=rad(200-100)构建你的公式;var-dLon=rad(200-100);var a=数学atan2(dLat,dLon)这很好,但是如果我使用地理位置,返回值是不可能的。如果我们不使用地理距离,并且计算这些距离并不简单,那么这将非常接近我们得到的极点。使用欧几里德(数字deltaX,deltaY)在欧洲/丹麦相当便宜。请参阅我答案中的代码。