所有栏目

真方位角的计算公式

已输入 0 字
优质回答
  • 先计算出坐标增量:

    dX=Xb-Xa

    dY=Yb-Ya

    dY=dY+1E-10 为了使除数不为零而加一个很小的数

    方位角计算万能公式:Az=pi * (1-Sgn(dY)/2)-Atn(dX / dY) 单位为弧度 Az=Az * 180 /pi 单位为度

    此公式计算无需判断象限,只需在值小于0时加上360即可!

    其中,sgn()为求符号函数,若dX<0时其值为-1,dX>0时为1,dX=0时为0。使用此公式不用判断所在象限,直接将坐标增量代入即可求出方位角值,在用计算器编程时若没有SGN()函数可自行判断并用一个变量代替!

    VBA代码:

    '方位角计算函数 Azimuth()

    'Sx为起点X,Sy为起点Y

    'Ex为终点X,Ey为终点Y

    'Style指明返回值格式

    'Style=-1为弧度格式

    'Style=0为“DD MM SS”格式

    'Style=1为“DD-MM-SS”格式

    'Style=2为“DD°MMˊSS""”格式

    'Style=其它值时返回十进制度值

    Function Azimuth(Sx As Double, Sy As Double, Ex As Double, Ey As Double, Style As Integer)

    Dim DltX As Double, DltY As Double, A_tmp As Double, Pi As Double

    Pi = Atn(1) * 4 '定义PI值

    DltX = Ex - Sx

    DltY = Ey - Sy + 1E-20

    A_tmp = Pi * (1 - Sgn(DltY) / 2) - Atn(DltX / DltY) '计算方位角

    A_tmp = A_tmp * 180 / Pi '转换为360进制角度

    Azimuth = Deg2DMS(A_tmp, Style)

    End Function

    '转换角度为度分秒

    'Style=-1为弧度格式

    'Style=0为“DD MM SS”格式

    'Style=1为“DD-MM-SS”格式

    'Style=2为“DD°MMˊSS""”格式

    'Style=其它值时返回十进制度值

    Function Deg2DMS(DegValue As Double, Style As Integer)

    Dim tD As Integer, tM As Integer, Ts As Double, tmp As Double

    tD = Int(DegValue)

    tmp = (DegValue - tD) * 60

    tM = Int(tmp)

    tmp = (tmp - tM) * 60

    Ts = Round(tmp, 1)

    select Case Style

    2023-10-24 01:47:28
  • 真方位角A=磁方位角A -m +磁偏角δ=坐标方位角α+子午线收敛角γ 。

    磁方位角 Am,坐标方位角 α 。测绘工作中,表示方向使用到的有三个方位角:真方位角,磁方位角,坐标方位角。真方位角是从通过目标方向线起点的子午线北方向(真北方向)顺时针旋转至目标方向线的夹角。取值范围是0°到360°(不含)。通俗讲就是和子午线的夹角。用A表示。磁方位角是和磁北方向的夹角。用Am表示。坐标方位角是和坐标纵线北方向的夹角。用α表示。

    2023-10-24 01:47:28
最新问题 全部问题