使用javascript计算两点之间的方位

使用javascript计算两点之间的方位,javascript,bearing,Javascript,Bearing,我想计算从点1到点2的方位 输入格式为52.070564-4.407116 无论我尝试什么,我都无法获得正确的输出 我使用的公式是: //koers-berekenen 变量y=数学sin(ln-ln1)*数学cos(lt); var x=数学cos(lt1)*数学sin(lt)- 数学sin(lt1)*数学cos(lt)*数学cos(ln-ln1); var弧度=数学atan2(y,x); var轴承=数学圆(弧度*(180/数学π)); /*>>>>>>>原创 start_纬度=12.93

我想计算从点1到点2的方位 输入格式为52.070564-4.407116

无论我尝试什么,我都无法获得正确的输出

我使用的公式是:

//koers-berekenen
变量y=数学sin(ln-ln1)*数学cos(lt);
var x=数学cos(lt1)*数学sin(lt)-
数学sin(lt1)*数学cos(lt)*数学cos(ln-ln1);
var弧度=数学atan2(y,x);
var轴承=数学圆(弧度*(180/数学π));
/*>>>>>>>原创
start_纬度=12.9389352
起始经度=77.6994306
停止纬度=12.939103
停止经度=77.705825
var y=Math.sin(停止经度-开始经度)*Math.cos(停止经度);
var x=Math.cos(起始纬度)*Math.sin(终止纬度)-
Math.sin(起始纬度)*Math.cos(终止纬度)*Math.cos(终止经度-起始经度);
var brng=数学atan2(y,x)*180/数学PI;
警告(“轴承度数:+brng”)

您可以使用以下函数计算轴承:

//从度转换为弧度。
函数环面(度){
返回度*Math.PI/180;
};
//将弧度转换为度。
函数到度(弧度){
返回弧度*180/Math.PI;
}
功能轴承(STARTAT、STARTNG、DESPLAT、destLng){
startLat=托拉迪亚斯(startLat);
惊跳=托拉迪安(惊跳);
Destrat=托拉迪安(Destrat);
destLng=toRadians(destLng);
y=数学sin(destLng-惊人)*数学cos(destLat);
x=数学cos(startat)*数学sin(destrat)-
Math.sin(destLat)*Math.cos(destLat)*Math.cos(destLng-starting);
brng=数学常数2(y,x);
brng=toDegrees(brng);
返回(brng+360)%360;

}
您能给我们一些示例输入和示例输出吗?
Math.sin()
Math.cos()
希望它们的输入以弧度为单位。看起来你的输入是度数,所以你需要转换它们。@Rogier检查我的解决方案52.07129-4.4056和52.07091-4.4048应该给出大约230*的清晰方位,所以我的输入需要以弧度为单位?我将尝试找到如何转换这个。谢谢我试过了,但还是没有达到预期的效果。我使用(*Math.PI/180)将输入从度更改为半径。当我拿2分时,一个是我的花园,另一个在街道的另一边,我得到20分。但当我在iphone上安装指南针时,指向该点的方位是250。我是否在思考中犯了错误???使用传单地图和实时移动对象对我来说非常有用。我用css转换的结果创建了一个指南针。