当前位置:文档之家› 方位角的计算方法

方位角的计算方法

方位角的计算方法有多种,根据公式与工具有不同,现有四种计算方法:
一、测量教材上的计算方法,需要判断象限,对了解原理有一定帮助,但在实际工作中不太实用,在此不予介绍,使用此方法计算的VB或VBA代码如下:
Public Const PI = 3.14159265359
Function Pol(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double '计算直线的方位角
Dim Sub_y As Double
Sub_y = Abs(y2 - y1)
If Sub_y = 0 Then
Sub_y = 0.0000000001
End If
Pol = Atn((Abs(x2 - x1)) / Sub_y)
If x2 > x1 And y2 >= y1 Then '0-90
ElseIf x2 < x1 And y2 <= y1 Then '180-270
Pol = PI + Pol
ElseIf x2 < x1 And y2 >= y1 Then '270-360
Pol = 2 * PI - Pol
ElseIf x2 >= x1 And y2 <= y1 Then '90-180
Pol = PI - Pol
End If
End Function
二、计算器上的pol()函数,用pol(dx,dy)计算,返回两点间距离与方位角,如角度值为负+360即可,具体使用方法参照说明书上的pol()函数介绍;
三、方位角通用万能公式:
此万能公式的VB或VBA代码如下:
Public Const PI = 3.14159265359
Function Pol(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double '计算直线的方位角
Dim Sub_x As Double
Sub_x = x2 - x1 + 0.0000000001
Pol = PI - Sgn(Sub_x) * PI / 2 - Atn((y2 - y1) / Sub_x)
End Function
sgn()函数为符号函数:
sgn(x)的值只有三个:
当x小于0时sgn(x)的值为-1
当x大于0时sgn(x)的值为1
当x等于0时sgn(x)的值为0
计算器上没有此函数,在编程时可用下列代码实现此函数功能:
if x<0 then
sgn(x)=-1
elseif x>0 then
sgn(x)=1
esle
sgn(x)=0
end if
四、另一个通用公式:
S
12=sqr((x
2
-x
1
)2+(y
2
-y
1
)2)= sqr(△x2+△y2)
A
12=arcsin((y
2
-y
1
)/S
12

S
12
为测站点1至放样点2的距离;
A
12
为测站点1至放样点2的坐标方位角。

x
1,y
1
为测站点坐标;
x
2,y
2
为放样点坐标。

按公式A
12=arcsin((y
2
-y
1
)/S
12
)计算出的方位角都要进行象限判断后加常数才是真正的方位角。

新计算公式为:
A
12=arccos(△x/S
12
)*sgn(△y)+360°
式中sgn()为取符号函数,改公式只需加上条件(A
12>360°, A
12
= A
12
-360°)就可以计算出坐标方
位角,不需要进行象限判断。

以下公式要注意如果△Yab=0,则应该把△Yab加上一个很小的数即可解决,通常编程时把△Yab+1E-10就可以,不影响方位角精度。

特别说明一点,用此公式计算的值若小于0则加上360度就可得出方位角,不用判断边所在的象限。

相关主题