已知两点的经纬度,如何计算方位角

经度东经为+,西经为—,纬度北纬为+,南纬为-,依照上面规则, 如何求两点A(x1,y1)B(x2,y2)之间的方位角。最好有公式和详细的推导过程!急求
想补充问一下,需不需要将经纬度转换成弧度单位后再进行计算,假如A(45度,89度) B(-27度,-66度)AB间的方位角是多少?

方位角(azimuth angle):指从某点的指北方向线起,依顺时针方向到目标方向线之间的水平夹角,叫方位角,方位角的取值范围为0~360度。

可以把地球看成是一个封闭的坐标系,赤道为X轴,0度经线为Y轴,
两者交叉点为原点.
然后连接AB两点,计算AB连线对应在X轴Y轴的数据绝对值:
X1(这里加绝对值号)+X2(这里加绝对值号,同象限前面的符号改为相减)=Y
Y1(这里加绝对值号)+Y2(这里加绝对值号,同象限前面的符号改为相减)=X
利用正切函数算出角度:
tanφ=Y/X 求出φ就是方位角了

我不确定100%要转换,不过,我最初的想法是把地球当作纯立体球体,
再把立体的地球投射到平面坐标上再进行计算的,而且题目本身就没提供弧度供计算,所以我的想法是不用转换。
假如A(45度,89度) B(-27度,-66度)AB间的方位角是多少?
则45+27=72=Y
89+66=155=X

故tanφ=y/X≈0.465 具体角度φ是多少那就要查正切函数表了~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-28
算起来还挺复杂的
地球的经纬度坐标是球坐标(x,y),x是经度,y是纬度
先把它转换成直角坐标(X,Y,Z)
设地球半径为r
则有转换式:
X=r*cos(y)*cos(x)
Y=r*cos(y)*sin(x)
Z=r*sin(y)
分别得到A(x1,y1),B(x2,y2)两点的直角坐标A(X1,Y1,Z1),B(X2,Y2,Z2)
那么AB两点间直线距离是L=√[(X2-X1)^2+(Y2-Y1)^2+(Z2-Z1)^2]
把上面转换式代入化简可以得到L=r*√[2-2cos(y1)*cos(y2)*cos(x1-x2)-2sin(y1)*sin(y2)]
设AB两点对球心所夹圆心角为θ(弧度),则有L=2r*sin(θ/2)=2r*√[(1-cosθ)/2]=r*√[2*(1-cosθ)]
因此cosθ=1-L^2/(2r^2)=cos(y1)*cos(y2)*cos(x1-x2)+sin(y1)*sin(y2)
那么弧长=r*θ
=r*arccos[cos(y1)*cos(y2)*cos(x1-x2)+sin(y1)*sin(y2)]
这里的经纬度用角度弧度均可,因为都要代入三角函数,但arccos得到的θ必须用弧度
相似回答