万能方位角计算公式

合集下载

方位角的计算方法

方位角的计算方法

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

方位角计算公式范文

方位角计算公式范文

方位角计算公式范文方位角是指从一个参考方向(通常是正北方向)起,按顺时针方向测量到其中一方向线的角度。

方位角通常用度数表示,范围从0度到360度。

下面介绍常见的方位角计算公式:1.方位角计算公式(两点坐标):假设已知起点坐标A(x1,y1)和终点坐标B(x2,y2),方位角θ的计算公式如下:θ = atan2(y2 - y1, x2 - x1)其中,atan2函数是一个双变量反正切函数,返回值为[-π, π]之间的角度值。

注意:上述公式计算得到的θ是以正北方向为参考的方位角。

如果要将方位角转换为以其他方向为参考的角度(如正东方向为0度),可以将θ减去相应的修正值。

2.方位角计算公式(两点经纬度):假设已知起点的经度(lon1)、纬度(lat1)和终点的经度(lon2)、纬度(lat2),方位角θ的计算公式如下:θ = atan2(sin(Δlon) * cos(lat2), cos(lat1) * sin(lat2) -sin(lat1) * cos(lat2) * cos(Δlon))其中,Δlon = lon2 - lon1是两点经度差。

注意:上述公式计算得到的θ是以正北方向为参考的方位角。

如果要将方位角转换为以其他方向为参考的角度(如正东方向为0度),可以将θ减去相应的修正值。

3.方位角计算公式(方向余弦矩阵):方向余弦矩阵(Direction Cosine Matrix)是一种将方位角和俯仰角等转化为三维空间坐标旋转的方式。

方向余弦矩阵的计算公式如下:D=[ cos(θ) * cos(φ), sin(θ) * cos(φ), -sin(φ) ][ -sin(θ), cos(θ), 0 ][ cos(θ) * sin(φ), sin(θ) * sin(φ), cos(φ) ]其中,θ是方位角,φ是俯仰角。

D是一个3行3列的矩阵,表示坐标变换矩阵。

上述是常见的方位角计算公式,根据不同的应用场景和问题,可能还会有其他的计算公式。

坐标万能计算公式

坐标万能计算公式

万能坐标计算公式X=起点x+(待求点桩号-起点桩号)*【0.1184634425*COS(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.046910077+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.046910077^2)+0.2393143352*COS(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.2307653449+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.2307653449^2)+0.2844444444*COS(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.5+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.5^2)+0.2393143352*COS(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.7692346551+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.7692346551^2)+0.1184634425*COS(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.953089923+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.953089923^2))+边距*COS(偏角+起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)】Y=起点Y+(待求点桩号-起点桩号)*【0.1184634425*SIN(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.046910077+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.046910077^2)+0.2393143352*SIN(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.2307653449+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.2307653449^2)+0.2844444444*SIN(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.5+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.5^2)+0.2393143352*SIN(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.7692346551+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.7692346551^2)+0.1184634425*SIN(起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)*0.953089923+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)*0.953089923^2))+边距*SIN(偏角+起始方位角/180*3.14159265+起点曲率*(待求点桩号-起点桩号)+0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号)*(待求点桩号-起点桩号)】切线方位角A=起始方位角+(终点曲率*(待求点桩号-起点桩号) +0.5*(终点曲率-起点曲率)/(终点桩号-起点桩号)*(待求点桩号-起点桩号) ^2)*180/3.14159265。

方位角

方位角
•方位角的推算
• 左角公式: • 右角公式:
α前 = α后 +180 + β左 α前 = α后 +180 - β右
° °
°
°
• 方位角的范围: 0 ≤α < 360 当
α > 360
°
° 360 时,应减去
测绘工程系
1
2019年1月20日星期日
•方位角的推算
已知:AB=76°20′,B=185°42′,1=211°08 ′ ,2=150 °45 ′
方位角推算公式: αij α AB ∑ β左 - n 180
αij = α AB
测绘工程系
3
° β + n × 180 ∑右
2019年1月20日星期日
§5-8 三角高程测量
●三角高程测量是一种间接测定两点之间高差的方法 要求观测两点之间的水平距离D(或斜距S)以及两点 之间的垂直角。 使用于山区或不便于进行水准测量的地区。
D2 f = f1 + f 2 = (1 - k ) 2R
测绘工程系
6
o
2019年1月20日星期日
三角高程测量中的“球气差”改正
D2 球差改正: f1 = + 2 R 2 D 气差改正: f = -k 2 2R
经研究,因大气折光引起 的视线曲率半径约为地球 曲率半径的7倍,取k=1/7
两差改正:
D f = f1 + f 2 = (1 - k ) 2R
解:
B1=AB+B-180° =AB°+B-180 ° AB =76°20′+185°42′ -180°
பைடு நூலகம்=82°02′
B
B1

坐标,方位角计算公式

坐标,方位角计算公式

坐标,方位角计算公式坐标方位角=磁方位角+(±磁坐偏角)。

方位角是卫星接收天线,在水平面上转0°-360°。

设定方位角时,抛物面在水平面上左右移动。

方位角(方位角,缩写为Az)是用于测量平面中物体之间的角度差的方法之一。

它是从点的北方向顺时针方向和目标方向之间的水平角度。

一、计算方法1、按给定的坐标数据计算方位角αBA、αBPΔxBA=xA-xB=+123.461m;ΔyBA=yA-yB=+91.508m;由于ΔxBA>0,ΔyBA>0;可知αBA位于第Ⅰ象限,即αBA=arctg=36°32'43.64";ΔxBP=xP-xB=-37.819m;ΔyBP=yP-yB=+9.048m;由于ΔxBP<0,ΔyBP>0;公式计算出来的方位角,可知αBP位于第Ⅱ象限。

αBP=180o-α=180o-arctg=180o-13o27'17.33"=166°32'42.67";此外,当Δx<0,Δy<0;位于第Ⅲ象限,方位角=180°+arctg;当Δx>0,Δy<0;位于第Ⅳ象限,方位角=360°-arctg。

2、计算放样数据∠PBA、DBP∠PBA=αBP-αBA=129°59'59.03"。

3、测设时,把经纬仪安置在B点,瞄准A点,按顺时针方向测设∠PBA,得到BP方向,沿此方向测设水平距离DBP,就得到P点的平面位置。

当受地形限制不便于量距时,可采用角度交会法测设放样点平面位置上例中,当BP间量距受限时,通过计算测设∠PAB、∠PBA来定P点。

根据给定坐标计算∠PAB;ΔxAP=xP-xA=-161.28m;ΔyAP=yP-yA=-82.46m;αAP=180°+arctg=207°4'47.88";又αAB=180°+αBA=180°+36°32'43.64"=216°32'43.64";∠PAB=αAB-αAP=9°27'55.76"。

坐标方位角通用计算公式

坐标方位角通用计算公式

坐标方位角通用计算公式及编程方法1、坐标方位角通用计算公式:α=180°-90°sgn(ΔY)-arctan(ΔX/ΔY)坐标增量取值范围为:ΔY≠0,若ΔY=0则令ΔY等于一个无穷小量(可以用1E220作为无穷小量取代0),通式值域为[0°,360°])。

2、编程计算本程序在计算机上运行时应根据适当的语言进行改编。

If ΔY=0 then ΔY=1E-20I=pi-pi×sgn(ΔY)/2-tan-1(ΔX/ΔY)Endif3、相关转化常量表1弧度=206264.8062″1弧度=57.2957795130823°1度=1.74532925199433E-02弧度(0.0174532925199433弧度)π=3.141592653589794、取西安80坐标系的长半轴6378140m,以赤道为例:1(经)度=6378140*3.1415926/180=111319m=111.3km1(经)分=6378140*3.1415926/180/60=1855m=1.8km1(经)秒=6378140*3.1415926/180/3600=30.9m5、基础知识(1)我国位于东经135度02分至东经73度40分,经差61度22分。

以6度带投影的话,位于第13号至23号带。

中央经线75度至135度。

以3度带投影的话,位于第25号至45号带。

中央经线75度至135度。

(2)我国位于北纬3度52分至北纬53度33分,纬差49度41分。

X北坐标的范围X北坐标最小值= 3度*111.3km + 52分* 1.8km =427.5km X北坐标最大值= 53度* 111.3km + 33分* 1.8km =5948.4km以米为单位的话,X北坐标有6至7位(3)以6度带计算的话,不加500km时,Y东坐标轴的正值和负值最大的绝对值=3度*111.3km=333.9km,Y东坐标加上500km后,Y最小值=500-333.9=166.1km,Y最大=500+333.9=833.9km(当然这是是位于赤道上的最大值和最小值,我国大陆位于赤道以北,相应要小于这两个极值)另外完整的Y东坐标还要以带号开头,所以以米为单位的话,Y坐标有8位。

万能方位角计算公式

万能方位角计算公式

先计算出坐标增量:dX=Xb-XadY=Yb-YadY=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 DoublePi = Atn(1) * 4 '定义PI值DltX = Ex - SxDltY = Ey - Sy + 1E-20A_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 DoubletD = Int(DegValue)tmp = (DegValue - tD) * 60tM = Int(tmp)tmp = (tmp - tM) * 60Ts = Round(tmp, 1)select Case StyleCase -1 '返回弧度Deg2DMS = DegValue * Atn(1) * 4 / 180Case 0Deg2DMS = tD & " " & Format(tM, "00") & " " & Format(Ts, "00.0")Case 1Deg2DMS = tD & "-" & Format(tM, "00") & "-" & Format(Ts, "00.0")Case 2Deg2DMS = tD & "°" & Format(tM, "00") & "ˊ" & Format(Ts, "00.0") & """" Case ElseDeg2DMS = DegValueEnd SelectEnd FunctionFunction pol(AX As Double, AY As Double, Bx As Double, By As Double) As Stringpol = Azimuth(AX, AY, Bx, By, 2) & " " & Distance(AX, AY, Bx, By, 3)End FunctionFunction rec(alpha As String, dist As Double) As StringDim Alpha_Rad As DoubleAlpha_Rad = StringToRad(alpha)rec = "dx:" & Round(Cos(Alpha_Rad) * dist, 3) & " dy:" &Round(Sin(Alpha_Rad) * dist, 3)End FunctionFunction StringToRad(strAz) '将字符串格式方位角转换成弧度格式Dim azSubStrIf strAz <> "" ThenazSubStr =Split(strAz, "-")If UBound(azSubStr) = 2 ThenStringToRad = (azSubStr(0) + azSubStr(1) / 60 + azSubStr(2) / 3600) * Atn(1) * 4 / 180ElseStringToRad = 0End IfElseStringToRad = 0End IfEnd Function。

两点反算方位角的通用公式

两点反算方位角的通用公式

两点反算方位角的通用公式两个点之间计算方位角普通的办法是计算角度,然后根据X/Y的正负号判断在哪个象限,然后再计算出来,这是很麻烦的一件事,下面和大家介绍一个比较简单的通用计算公式。

假设A、B连个点,坐标分别为(XA、YA),(XB、YB),下面计算A—to—B的坐标方位角,我们可以用以下公式进行计算:a ab=PI-PI/2*SIGN(YB-YA)-ATAN((XB-XA)/(YB-YA))SIGN()是取符号(正负)函数Excel中三角函数计算出来的是弧度下面用该公式对方位角在四个象限的情况进行证明:1、第一象限图中a=|ATAN((XB-XA)/(YB-YA))|,由于(YB-YA)为正,(XB-XA)为正,则a ab=PI-PI/2*SIGN(YB-YA)-ATAN((XB-XA)/(YB-YA))=PI/2-a由此可见公式正确2、第二象限图中a=|ATAN((XB-XA)/(YB-YA))|,由于(YB-YA)为正,(XB-XA)为负,则a ab=PI-PI/2*SIGN(YB-YA)-ATAN((XB-XA)/(YB-YA))=PI/2+a由此可见公式正确3、第三象限图中a=|ATAN((XB-XA)/(YB-YA))|,由于(YB-YA)为负,(XB-XA)为负,则a ab=PI-PI/2*SIGN(YB-YA)-ATAN((XB-XA)/(YB-YA))=3/2PI-a由此可见公式正确4、第四象限图中a=|ATAN((XB-XA)/(YB-YA))|,由于(YB-YA)为负,(XB-XA)为正,则a ab=PI-PI/2*SIGN(YB-YA)-ATAN((XB-XA)/(YB-YA))=3/2PI+a由此可见公式正确从以上证明可以确定该公式对于四个象限的方位角都能进行正确计算。

不过需要说明的是当(YB-YA)为0时会出现bug,这种特例需要我们在实际工作中进行特殊处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

先计算出坐标增量:
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
Case -1 '返回弧度
Deg2DMS = DegValue * Atn(1) * 4 / 180
Case 0
Deg2DMS = tD & " " & Format(tM, "00") & " " & Format(Ts, "00.0")
Case 1
Deg2DMS = tD & "-" & Format(tM, "00") & "-" & Format(Ts, "00.0")
Case 2
Deg2DMS = tD & "°" & Format(tM, "00") & "ˊ" & Format(Ts, "00.0") & """" Case Else
Deg2DMS = DegValue
End Select
End Function
Function pol(AX As Double, AY As Double, Bx As Double, By As Double) As String
pol = Azimuth(AX, AY, Bx, By, 2) & " " & Distance(AX, AY, Bx, By, 3)
End Function
Function rec(alpha As String, dist As Double) As String
Dim Alpha_Rad As Double
Alpha_Rad = StringToRad(alpha)
rec = "dx:" & Round(Cos(Alpha_Rad) * dist, 3) & " dy:" &
Round(Sin(Alpha_Rad) * dist, 3)
End Function
Function StringToRad(strAz) '将字符串格式方位角转换成弧度格式
Dim azSubStr
If strAz <> "" Then
azSubStr =Split(strAz, "-")
If UBound(azSubStr) = 2 Then
StringToRad = (azSubStr(0) + azSubStr(1) / 60 + azSubStr(2) / 3600) * Atn(1) * 4 / 180
Else
StringToRad = 0
End If
Else
StringToRad = 0
End If
End Function。

相关文档
最新文档