搜档网
当前位置:搜档网 › 坐标正反算vb测量程序

坐标正反算vb测量程序

坐标正反算vb测量程序
坐标正反算vb测量程序

坐标正反算vb测量程序

河北工程大学测绘1001 刘长君以下是登陆界面和计算界面的截图:

以下就是对应的代码:

《登陆界面的代码》

Private Sub Command1_Click()

If Text1.Text = "刘长君" And Text2.Text = "100510130" Then

Form2.Show

Unload Me

Else

Dim a As Integer

a = MsgBox("密码输入有误,请重新输入", 1, "提示框")

If a = 1 Then

Text2.Text = ""

Text2.SetFocus

End If

End If

End Sub

Private Sub Command2_Click()

End

End Sub

《计算界面的代码》

Private Sub Command1_Click(Index As Integer)

Dim a1%, a2%, a3%, a4!, a5!, pi!

Const conpi = 3.14159265358979

If IsNumeric(Text1(1)) = False Or IsNumeric(Text2(2)) = False Or IsNumeric(Text3(3)) = False Or IsNumeric(Text4(4)) = False Or IsNumeric(Text5(5)) = False Or IsNumeric(Text6(6)) = False Then

MsgBox "输入有误"

Text1(1).SetFocus

Else

If Val(Trim(Text5(5).Text)) > 60 Or Val(Trim(Text5(5).Text)) < 0 Or Val(Trim(Text6(6).Text)) > 60 Or Val(Trim(Text6(6).Text)) < 0 Then

MsgBox "方位角输入有误,请重新输入"

Text4(4).SetFocus

Text4(4).Text = ""

Text5(5).Text = ""

Text6(6).Text = ""

End If

a1 = Val(Text4(4).Text)

a2 = Val(Text5(5).Text)

a3 = Val(Text6(6).Text)

a4 = a1 + a2 / 60 + a3 / 3600

a5 = a4 * conpi / 180

Label12.Caption = Val(Text3(3).Text) * Cos(a5)

Label13.Caption = Val(Text3(3).Text) * Sin(a5)

Label14.Caption = Val(Text1(1).Text) + Val(Label12.Caption)

Label15.Caption = Val(Text2(2).Text) + Val(Label13.Caption)

Label12.Caption = Format((Val(Label12.Caption) * 10000 + 0.5) / 10000, "####.0000")

Label13.Caption = Format((Val(Label13.Caption) * 10000 + 0.5) / 10000, "####.0000")

Label14.Caption = Format((Val(Label14.Caption) * 10000 + 0.5) / 10000, "####.0000")

Label15.Caption = Format((Val(Label15.Caption) * 10000 + 0.5) / 10000, "####.0000") End If

End Sub

Private Sub Command2_Click(Index As Integer)

Text1(1).Text = " "

Text2(2).Text = " "

Text3(3).Text = " "

Text4(4).Text = " "

Text5(5).Text = " "

Text6(6).Text = " "

Label12.Caption = ""

Label13.Caption = ""

Label14.Caption = ""

Label15.Caption = ""

Text1(1).SetFocus

End Sub

Private Sub Command3_Click()

Dim dx!, dy!, a12!, r12!, d12!

Const conpi = 3.14159265358979

If IsNumeric(Text7) = False Or IsNumeric(Text8) = False Or IsNumeric(Text9) = False Or IsNumeric(Text10) = False Then

MsgBox "输入有误"

Else

dx = V al(Text9.Text) - Val(Text7.Text)

dy = Val(Text10.Text) - Val(Text8.Text)

d12 = Sqr(dx ^ 2 + dy ^ 2)

Label25.Caption = Format((d12 * 10000 + 0.5) / 10000, "####.0000")

If dx = 0 And dy > 0 Then

Label31.Caption = 90: Label32.Caption = 0: Label33.Caption = 0

ElseIf dx = 0 And dy < 0 Then

Label31.Caption = 270: Label32.Caption = 0: Label33.Caption = 0

Else

r12 = Atn(Abs(dy / dx))

If dx > 0 And dy > 0 Then

a12 = r12

ElseIf dx < 0 And dy > 0 Then

a12 = pi - r12

ElseIf dx < 0 And dy < 0 Then

a12 = pi + r12

ElseIf dx > 0 And dy < 0 Then

a12 = 2 * pi - r12

End If

a12 = a12 / conpi * 180

Label31.Caption = Fix(a12)

Label32.Caption = Abs(Fix((a12 - Fix(a12)) * 60))

Label33.Caption = Abs(Fix((((a12 - Fix(a12)) * 60) - Fix((a12 - Fix(a12)) * 60)) * 60))

End If

End If

End Sub

Private Sub Command4_Click() Text7.Text = ""

Text8.Text = ""

Text9.Text = ""

Text10.Text = ""

Label25.Caption = ""

Label31.Caption = ""

Label32.Caption = ""

Label33.Caption = ""

Text7.SetFocus

End Sub

Private Sub Timer1_Timer() Label34.Left = Label34.Left + 20 If Label34.Left = 12300 Then Label34.Left = 0

End If

End Sub

FX5800P计算器坐标正反算程序Word文档

(以下程序是专业人士编写,本店铺不对程序负责,仅供您参考使用。) 卡西欧fx5800p计算器坐标正反算程序

一、程序功能 本程序由 6 个主程序、 5 个次子程序及 5 个参数子程序组成。主要用于公路测量中坐标正反算,设计任意点高程及横坡计算 , 桥涵放样,路基开挖口及填方坡脚线放样。程序坐标计算适应于任何线型 . 二、源程序 1. 主程序 1 :一般放样反算程序(① 正算坐标、放样点至置仪点方位角及距离;② 反算桩号及距中距离 ) 程序名 :1ZD-XY Lb1 0:Norm 2 F=1 : ( 正反算判别, F=1 正算, F=2 反算 , 也可以改 F 前加?,改 F 为变量 ) Z[1]=90 (与路线右边夹角) Prog " THB ": F=1=>Goto 1:F=2=>Goto 2 Lb1 1: F ix 3: "X = ": Locate 6,4, X◢ "Y=": Locate 6,4, Y◢ P rog "3JS”:Goto 0: Lb1 2:Fix 3: "KM=": Locate 6,4, Z◢ "D=": Locate 6,4, D◢ G oto 0 2.主程序2:高程序横坡程序 ( 设计任意点高程及横坡 ) 程序名: 2GC LbI 0:Norm 2 “KM”?Z:?D: Prog”H”:Fix 3:” H=”:Locate 6,4,H◢ “ I=”: Locate 6,4,I◢ Goto 0 3. 主程序 3 :极坐放样计算程序 ( 计算放样点至置仪点方位角及距离 ) 程序名: 3JS X : Y : 1268 .123→K( 置仪点 X 坐标 ) 2243 .545→L (置仪点 Y 坐标,都是手工输入 , 也可以建导线点数据库子程序 , 个人认为太麻烦) Y-L→E : X-K→F : Pol(F,E):IF J<0:Then J+360→J:Int(J)+0.01Int(60Frac(J))+0.006Frac(60Frac(J)) →J:( 不习惯小数点后四位为角度显示的,也可以用命令J◢DMS◢ 来直接显示) Fix 4:” FWJ=”: Locate 6,4,J◢( 不习惯小数点后四位为角度显示的,也可以用命令 J◢DMS◢ 来直接显示 ) Fix 3:” S=”:Locate 6,4,I◢ 4 .主程序 4 :涵洞放样程序(由涵中心桩号计算出各涵角坐标、在主程序 3 中输入置仪点坐标后计算放样点至置仪点方位角及距离 ) 程序名: 4JH-XY LbI 0:Norm 2 90→Z[1]( 涵洞中心桩与右边夹角,手工输入,也可以修改成前面加?后变为变量 )

高斯投影坐标正反算VB程序

高斯投影坐标正反算 V B程序 文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

高斯投影坐标正反算 学院: 班级: 学号: 姓名: 课程名称: 指导老师:

实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变; 3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没有 变形,仍然相等。 操作工具: 计算机中的 代码: Dim a As Double, b As Double, x As Double, y As Double, y_#

Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#, m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val min1 = Val sec1 = Val deg2 = Val min2 = Val sec2 = Val l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val k1 = ((l_ * 180 / + 3) / 6) k2 = (l_ * 180 / / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else

坐标正反算程序计算器

一、 Lbl 3:"1→ZS,2→FS"?Q Q=1=>Goto 1:Q=2=>Goto 2 Lbl 1:"CE:X"?M:"CE:Y"?F:"JL"?L:"FWJ"?A:Rec(L,A):M+I→C:F+J→D Cls "X=":Locate 3,1,C:"Y=":Locate 3,2,D◢ Goto 3 Lbl 2::"CE:X"?G:"CE:Y"?H:"(HOU)FY:X"?N:"(HOU)FY:Y"?E Pol(N-G,E-H) If J<0:Then J+360→Y:Else J→Y:IfEnd Cls "FY JL=":Locate 10,1,I:"FY FWJ=":Y◆DMS◢ Goto 3 进入程序运行如下: 1→ZS,2→FS? 输入1为正算,2为反算. 以输入1为例: CE:X? 测站点X(5796.717) CE:Y? 测站点Y(5212.569) JL? 仪器测得的距离(321.889) FWJ? 仪器测得的方位角(193-41-07) 得到:X=5483.966 Y=5136.414 再按EXE,输2为例: CE:X? 测站点X(5796.717) CE:Y? 测站点Y(5212.569) (HOU)FY:X? 后视或放样的X(5483.966) (HOU)FY:Y? 后视或放样的Y(5136.414) 得到:FY JL=321.889 FY FWJ=193-41-6.79 二、 Deg : Fix 3 : “XZ→0:YZ→1”?A : If A = 1: Then Goto 1 : IfEnd ↙ If A = 0 : Then “BS→0:XY→1:AND→2:DK→3:L(I)→4 ”?O : IfEnd ↙ If O = 4: Then Goto 1 : IfEnd ↙ If O = 3: Then Prog “F.2 ”: If X= 0 : Then Goto 1 : IfEnd : IfEnd ↙ If O≠1: Then “X1 ”?X : “Y1”?Y : X→Z[11]: Y→Z[12]: “X2 ”?P : “Y2”?Q : Pol( P-X , Q-Y) : If J﹤0 : Then J + 360→J : IfEnd : Cls : “S12= ”: Locate 6 ,1, I : “B12= ”: J ?DMS◣

高斯投影正反算编程

高斯投影正反算 班级:测绘九班C 姓名:塔娜 学号:2009301610323 指导老师:苏新洲 2011-11-02

高斯投影正反算编程 一、题目: 已知部分数据,根据高斯投影正反算思想进行编程,并采用克氏椭球,按3°或6°带投影。 正算:已知大地坐标B 、L, 二、已知数据: 正算: B=51.38439023 L=111.02131360 反算: x=5724004.723 y=19502559.920 三、计算结果: 正算结果: x=5724004.723 y=19502559.920 反算结果: B=51.38439023 L=111.02131360

(不予画出) 五、源代码: #include"gaosi.h" #include"math.h" #include"stdio.h" #include"tchar.h" #include"stdlib.h" #define pi 3.141592653589793 #define rho 206265 void Calculateellipse2plane(double B,double L); void Calculateplane2ellipse(double x,double y); double Dms2Rad(double Dms); double D2Dms(double D); double Dms2D(double Dms); int main() { double B=0,L=0; double x=0,y=0; int i=0; printf("如使用高斯投影坐标正算,请输入1;反算,请输入2\n"); scanf_s("%d",&i); if(i==1)

电子表格Excel VBA测量程序分享

电子表格Excel VBA测量程序分享2012-2-13 11:16阅读(6977) 简介:Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,Visual Basic forApplications(VBA)是一种VisualBasic的一种宏语言,是基于Visual Basic for Windows 发展而来的,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script,VBA的使用可以达成执行特定功能或是重复性高的操作。 适用:Microsoft Office Excel办公软件 NO.1:曲线坐标计算程序VBA 说明:本程序适用于Office Excel运行,属于多交点坐标正算、反算程序,包括:多交点曲线要素、坐标正算、坐标反算、放样计算、竖曲线高程等。

下载: 曲线坐标计算程序VBA 1.0(单交点坐标正算) 曲线坐标计算程序VBA 2.0(单交点坐标正算、反算) 曲线坐标计算程序VBA 2.3(单交点坐标正算、反算、自动化) 曲线坐标计算程序VBA 3.0(多交点坐标正算、反算) 曲线坐标计算程序VBA 4.0~4.9(交点法、线元法、竖曲线等一体化程序)2012-11-15 更新 测量坐标计算程序 V5(交点法、线元法、直线、竖曲线等多种计算程序) 2013-07-27 更新 NO.2:测量计算程序集成VBA 1.6 说明:本程序适用于Office Excel运行,通过VBA编写的测量集成程序,属于单交点曲线,包括:坐标正算、坐标反算、坐标放样、角度转弧度、任意切线方位角、坐标展点、边角后方交会、坐标面积计算、无定向平差、水准平差、竖曲线高程、导线观测手薄、线元法坐标正算、线元法坐标反算、直线坐标正反算等。 下载:点击下载 NO.3:线元法坐标正反算VBA 说明:本程序适用于Office Excel运行,是线元法坐标正算、反算一体程序,可以计算多线元数据,适用性广(包括:复曲线、S型曲线、匝道)等。 下载: 线元法坐标正算VBA 1.0(单线元正算) 线元法坐标正反算VBA 2.0(单线元正算、反算) 线元法坐标正反算VBA 3.0(多线元正算、反算) NO.4:结构物坐标计算程序VBA 1.0 说明:本程序适用于Office Excel运行,该程序可计算任意矩形边角点,适用于涵洞基础、桥墩承台等矩形、平行四边形角点坐标计算,本表为曲线坐标计算程序VBA 4.0改进版,属于多交点要素含坐标正算。 下载:点击下载

(完整word版)高斯投影正反算 代码

#include "stdafx.h" #include "iostream.h" #include "math.h" #include "stdio.h" #define P 206264.806247096355 #define PI 3.141592653589793 void GaosZ_fun() { printf("高斯投影的正算\n"); double l,L,B,n2,x,y,N,t,V,c,e2; double i,j,k,n,h,a0,a4,a6,a3,a5,cB2; int m; e2=0.006738525414683; c=6399698.901782711; B=17.33557339*3600/P; L=119.15521159*3600/P; l=L-111*3600/P // l=((m%6)*3600+n*60+h)/P; t=tan(B); n2=e2*cos(B)*cos(B); V=sqrt(1+n2); cB2=pow(cos(B),2); N=6399698.902-(21562.267-(108.973-0.612*cB2)*cB2)*cB2; // N=c/V; a0=32140.404-(135.3302-(0.7092-0.004*cB2)*cB2)*cB2; a4=(0.25+0.00252*cB2)*cB2-0.04166; a6=(0.166*cB2-0.084)*cB2; a3=(0.3333333+0.001123*cB2)*cB2-0.1666667; a5=0.0083-(0.1667-(0.1968+0.0040*cB2)*cB2)*cB2; // x=X+N*sin(B)*cos(B)*l*l/2+N*sin(B)*pow(cos(B),3)*(5-t*t+9*n2+4*n2*n2)*pow(l, 4)/24+N*sin(B)*pow(cos(B),5)*(61-58*t*t+pow(t,4))*pow(l,6)/720; // y=N*cos(B)*l+N*pow(cos(B),3)*(1-t*t+n2)*pow(l,5)/6+N*pow(cos(B),5)*(5-18*t*t +pow(t,4)+14*n2-58*n2*t*t)*pow(l,5)/120; x=6367558.4969*B-(a0-(0.5+(a4+a6*l*l)*l*l)*l*l*N)*sin(B)*cos(B); y=(1+(a3+a5*l*l)*l*l)*l*N*cos(B); printf("x=%f\ny=%f\n",x,y); } void GaosF_fun() { printf("高斯投影的反算\n"); double B,Bf,Nf,b,b2,b3,b4,b5,Z,x,y,L0,l;

坐标正反算计算公式

坐标正反算公式

一、GPS数据处理相关术语 1、三维无约束平差 三维无约束平差是以基线解算所得到的三维静态基线向量为观测值,待定参数主要为GPS 网中点的坐标;同时,利用基线解算时随基线向量一同输出的基线向量的方差阵,形成平差的随机模型,最终形成平差完整的数学模型。随后对所形成的数学模型进行求解,根据平差结果来确定观测值中是否存在粗差,数学模型是否有需要改进的部分,若存在问题,则采用相应的方法进行处理并重新进行求解;若未发现问题,则输出最终结果,并进行后续的数据处理。 2、三维约束平差 三维约束平差是以基线解算所得到的三维静态基线向量为观测值,在平差过程中引入会使GPS 网的尺度、方向和位置发生变化的外部起算数据,从而实现GPS 网成果由基线解算时GPS 卫星星历所采用的参照系(WGS84 )到特定参照系的转换,得到在特定参照系下的经过用户约束条件约束的点三维空间坐标。 二、南方GPS数据处理软件的平差方式

三维约束平差是指在基线解算后,WGS84坐标系下的三维平差,在三维平差中是不需要当地平面直角坐标系下的已知点坐标,当需要用到WGS84经纬度或空间直角坐标的用户可加载已知点的WGS84空间坐标(如果只有经纬度时,可采用COORD4.1软件进行转换,本站免费提供)进行三维约束平差,即可得到与已知点相匹配的WGS84坐标。 一般情况下,在“已知点坐标录入”窗口中,我们都没有输入WGS8坐标,而只输入当地坐标系下的已知坐标,此时GPS处理软件会自动识取一个坐标点的WGS84坐标进行约束平差。如下图:

如果在某些控制测量中,需要得到精确的WGS84经纬度或空间坐标时,让系统自动识取显然是不行的,此时我们只要为参与平差的已知点的WGS84空间坐标输入后再进行三维平差即可 在这里,我们加入了两个已知点的WGS84空间坐标,三维平差后,列表中会显示两个"固定"字样的点,说明,在进行三维平差中,我们把这两个点做为起算点,进行平差别的未知点。

高斯投影正反算编程(可编辑修改word版)

高斯投影正反算编程一.高斯投影正反算基本公式(1)高斯正算基本公式 (2)高斯反算基本公式

以上主要通过大地测量学基础课程得到,这不进行详细的推导,只是列出基本公式指导编程的进行。 二.编程的基本方法和流程图 (1)编程的基本方法 高斯投影正反算基本上运用了所有的编程基本语句,本文中是利用C++语言进行基本的设计。高斯正算中对椭球参数和带宽的选择主要运用了选择语句。而高斯反算中除了选择语句的应用,在利用迭代算法求底点纬度还应用了循环语句。编程中还应特别注意相关的度分秒和弧度之间的相互转换,这是极其重要的。 (2)相关流程图 1)正算

选择带宽 3/6 度带 计算带号 输入大地坐标 B ,L 和经差 L0 6 度带 3 度带 选择椭球参数 计算带号 计算弧长 计算平面坐标 x,y 打印 x,y 开始 计算平面坐标 x,y 计算弧长 打印 x,y

开始 输入自然值坐标x,y 和经差L0 选择椭球参数 利用迭代算法 求解底点纬度 利用公式计算B 和L 打印B 和L 2)反算

三.编程的相关代码(1)正算 # include "stdio.h" # include "stdlib.h" # include "math.h" # include "assert.h" #define pi (4*atan(1.0)) int i; struct jin { double B; double L; double L0; }; struct jin g[100]; main(int argc, double *argv[]) { FILE *r=fopen("a.txt","r"); assert(r!=NULL); FILE *w=fopen("b.txt","w"); assert(r!=NULL); int i=0;

坐标正反算定义及公式

坐标正反算定义及公式 Corporation standardization office #QS8QHH-HHGX8Q8-GNHHJ8

第六章→第三节→导线测量内业计算 导线计算的目的是要计算出导线点的坐标,计算导线测量的精度是否满足要求。首先要查实起算点的坐标、起始边的方位角,校核外业观测资料,确保外业资料的计算正确、合格无误。 一、坐标正算与坐标反算 1、坐标正算 已知点的坐标、边的方位角、两点间的水平距离,计算待定点的坐标,称为坐标正算。如图6-6 所示,点的坐标可由下式计算: 式中、为两导线点坐标之差,称为坐标增量,即: 【例题6-1】已知点A坐标,=1000、=1000、方位角=35°17'36.5",两点水平距离=200.416,计算点的坐标?

35o17'36.5"=1163.580 35o17'36.5"=1115.793 2、坐标反算 已知两点的坐标,计算两点的水平距离与坐标方位角,称为坐标反算。可知,由下式计算水平距离与坐标方位角。 (6-3) (6-4) 式中反正切函数的值域是-90°~+90°,而坐标方位角为0°~360°,因此坐标方位角的值,可根据、的正负号所在象限,将反正切角值换算为坐标方位角。 【例题6-2】=3712232.528、=523620.436、=3712227.860、=523611.598,计算坐标方位角计算坐标方位角 、水平距离。

=62°09'29.4"+180°=242°09'29.4" 注意:一直线有两个方向,存在两个方位角,式中:、的计算是过A点坐标纵轴至直线的坐标方位角,若所求坐标方位角为,则应是A点坐标减点坐标。 坐标正算与反算,可以利用普通科学电子计算器的极坐标和直角坐标相互转换功能计算,普通科学电子计算器的类型比较多,操作方法不相同,下面介绍一种方法。 【例题6-3】坐标反算,已知=2365.16、=1181.77、 =1771.03、=1719.24,试计算坐标方位角、水平距离。 键入1771.03-2365.16按等号键[=]等于纵坐标增量,按储存键[], 键入1719.24-1181.77按等号键[=]等于横坐标增量,按[]键输入,按[]显示横坐标增量,按[]键输入,按第二功能键[2ndF],再按[]键,屏显为距离,再按[]键,屏显为方位角。 【例题6-4】坐标正算,已知坐标方位角=294°42'51", =200.40,试计算纵坐标增量横坐标增量。

高斯投影坐标正反算VB程序

高斯投影坐标正反算 学院: 班级: 学号: 姓名: 课程名称: 指导老师:

实验目的: 1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。 实验原理: 高斯投影正算公式中应满足的三个条件: 1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件: 1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变; 3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没 有变形,仍然相等。 操作工具: 计算机中的VB6.0 代码: Dim a As Double, b As Double, x As Double, y As Double, y_# Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#,

m6#, m8#, m0#, l0#, e#, e1# Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click() Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val(Text1.Text) min1 = Val(Text2.Text) sec1 = Val(Text3.Text) deg2 = Val(Text4.Text) min2 = Val(Text5.Text) sec2 = Val(Text6.Text) l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val(Text9.Text) k1 = ((l_ * 180 / 3.14159 + 3) / 6) k2 = (l_ * 180 / 3.14159 / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else If dh = 3 Then

5800-9860计算器坐标正反算通用程序

5800-9860计算器坐标正反算通用程序 1. 坐标正算主程序(命名为ZBZS) 第1行:Lbl 0:”K=”?K:”BIAN=”? Z:”α=”?B 第2行:Prog “A” 第3行:”X=”:N+Zcos(F+B)◢ 第4行:”Y=”:E+Zsin(F+B)◢ 第5行:”F=”:F◢ 第6行:Goto 0 K——计算点的里程 BIAN——计算点到中桩的距离(左负右正) α——取前右夹角为正 2. 坐标反算桩号和偏距主程序(命名为ZBFS) 第1行:”X1=”? C:”Y1=”?D: ”K1=”?K 第2行:Lbl 0:Prog “A” 第3行:Pol(C-N,D-E) 第4行:List Ans[1]→I 第5行:List Ans[2]→J 第6行:Icos(F-J)→S:K+S→K 第7行:Abs(S)>0.0001=>Goto 0 第8行:”K1=”:K◢ 第9行:”BIAN=”:Isin(J-F)→Z◢ X1——取样点的X坐标 Y1——取样点的Y坐标 K1——输入时为计算起始点(在线路内即可),输出时为反算点的桩号 Z——偏距(左负右正) 3. 计算坐标子程序(命名为XYF) 为了简洁,本程序由数据库直接调用,上述中的正反算主程序不直接调用此程序第1行:K-A→S:(Q-P)÷L→I 第2行:N+∫(cos(F+X(2P+XI)×90÷π),0,S)→N 第3行:E+∫(sin(F+X(2P+XI)×90÷π),0,S)→E 第4行:F+S(2P+SI)×90÷π→F 4. 数据库(命名为A)

第1行:K≤175.191=>Stop 第2行: 175.191→A:428513.730→N:557954.037→E:92°26′40″→F:0→P:1/240→Q:70.417→L: K≤A+L =>GoTo 1(第一缓和曲线,圆半径为240) 第3行:245.607→A: 428507.298→N:558024.092→E: 100°50′59.4″→F: 1/240→P:1/240→Q: 72.915→L: K≤A+L =>Goto 1(第圆曲线,半径为240) 第4行:318.522→A: 428482.988→N:558092.538→E: 118°15′25.2″→F: 1/240→P: 0→Q: 55.104 →L: K≤A+L =>Goto 1(第二缓和曲线,圆半径为240) 第5行:373.627→A:428453.283→N:558138.912→E:124°50′4.5″→F:0→P:- 1/180→Q:67.222→L: K≤A+L=>Goto 1:Stop(第一缓和曲线,圆半径为180) 第6行:Lbl 1:Prog “XYF” A——曲线段起点的里程 N——曲线段起点的x坐标 E——曲线段起点的y坐标 F——曲线段起点的坐标方位角 P——曲线段起点的曲率(左负右正) Q——曲线段终点的曲率(左负右正) L——曲线段长度(尽量使用长度,为计算断链方便) 说明: (1)在9860中,程序中所有公式和部分函数结果均存储在List Ans列表数组中,要想多次调用最好随公式取出结果,并赋给变量。 (2)正算主程序可以计算一般边桩的坐标,如要计算类似涵洞端墙的坐标需增加第二偏距和转角两个变量。 (3)程序规定,左偏曲线曲率(半径倒数)输入负值,右偏曲线曲率输入正值,直线上点曲率输入0,例如直线段,线元起点和终点均输入0,第一缓和曲线分别输入0和圆半径的倒数,圆曲线均输入半径倒数,第二缓和曲线分别输入圆半径倒数和0,卵形曲线分别输 入对应圆半径的倒数 (4)若是从大里程向小里程的反方向计算,则曲率取正方向时的负值,方位角减去(或加上)180度。 (5)有多个匝道的项目,可随时更改正反算主程序中的红色字体部分来调用其它线路的数据 (6)反算桩号偏差为1mm (7)可以计算任意线型的任意点坐标

高斯投影正反算公式 新

高斯投影坐标正反算 一、相关概念 大地坐标系由大地基准面和地图投影确定,由地图投影到特定椭圆柱面后在南北两极剪开展开而成,是对地球表面的逼近,各国或地区有各自的大地基准面,我国目前主要采用的基准面为:基准面,为GPS基准面,17届国际大地测量协会上推荐,椭圆柱长半轴a=6378137m,短半轴b=; 2.西安80坐标系,1975年国际大地测量协会上推荐,椭圆柱长半轴a=6378140m,短半轴b=; 3.北京54坐标系,参照前苏联克拉索夫斯基椭球体建立,椭圆柱长半轴a=6378245m, 短半轴b=; 通常所说的高斯投影有三种,即投影后: a)角度不变(正角投影),投影后经线和纬线仍然垂直; b)长度不变; c)面积不变; 大地坐标一般采用高斯正角投影,即在地球球心放一点光源,地图投影到过与中央经线相切的椭圆柱面上而成;可分带投影,按中央经线经度值分带,有每6度一带或每3度一带两种(起始带中央经线经度为均为3度,即:6度带1带位置0-6度,3度带1带位置度),即所谓的高斯-克吕格投影。

图表11高斯投影和分带 地球某点经度(L)为过该点和地球自转轴的半圆与子午线所在半圆夹角,东半球为东经,西半球为西经;地球某点纬度(B)为所在水平面法线与赤道圆面的线面角。 正算是已知大地坐标(L,B),求解高斯平面坐标(X,Y),为确保Y值为正,Y增加500公里;反算则是由高斯平面坐标(X,Y)求解大地坐标(L,B)。 二、计算模型: 地球椭球面由椭圆绕地球自转轴旋转180度而成。 图表 1 椭圆 椭圆长半轴a,椭圆短半轴b, 椭圆方程:

(1) 图表2椭球面 椭球面方程: y2 a2+ x2 b2 + z2 a2 =1 /*************************************** 与网上充斥的将函数关系先展开为泰勒级数,再依据投影规则确定各参数不同,本文直接依据空间立体三角函数关系得出结果。 *****/ (一)正算 由图表1,

全站仪测量坐标步骤

全站仪测量坐标步骤 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

全站仪测量坐标步骤 仪器对中整平,开机进入主菜单,进入放样程序: 一:站点在已知点上:然后开始建站,先输入站点坐标,然后根据提示输入后视点坐标,把仪器对准后视点,然后按测距,测好后站就建好了,这时候要反侧下后视点,看测量出的后视点坐标和你输入的坐标差多少,如在允许范围内,就可以进行下一步放样,如不在,则需要找出原因,原因来自三个方面:仪器问题、人问题、点坐标问题。在解决好后可以进入下一步饭放样了,根据仪器提示,输入放样点坐标,输入后一般仪器会显示角度距离。这表示你输入的数据仪器,算出要放样的点和站点的关系,不用管它,然后按极差按钮或下一步之类的按键,会进入到一个水平角,会不断变换的界面,把仪器转到水平角数据显示为“度”“分”“秒”附近,然后用水平微动把仪器调到“度”“分”“秒”这表示要放样的点在这条线上。在仪器前方,另一人棱镜对准仪器,测量一下,会显示比如-30m或30m表示你所要放的点要前进或后退30m,不同于正负号,表示前进或后退不同,持棱镜人就按照操作仪器人的提示前进或后退。在测量数据位正负10公分的时候就可以打桩了,然后在桩上钉钉,继续定位,这点就好了。 二:仪器架在未知点上,那就是在操作第一种情况前加上后方交会程序就行了,仪器进入后方交会程序后,先输入已知点A坐标,然后测A 点测距,后输入B点坐标,然后照准B点测距,然后计算可以算出站点坐

标,算出站点坐标后就又回到上面第一种情况,继续按照“一”的提示操作就行。 全转仪测量坐标不管哪种情况请注意一点: 长边必须控制短边,即站点与后视点的距离要大于站点与放样点的距离。

2021年坐标正反算计算公式

坐标正反算公式 欧阳光明(2021.03.07) 一、GPS数据处理相关术语 1、三维无约束平差 三维无约束平差是以基线解算所得到的三维静态基线向量为观测值,待定参数主要为 GPS 网中点的坐标;同时,利用基线解算时随基线向量一同输出的基线向量的方差阵,形成平差的随机模型,最终形成平差完整的数学模型。随后对所形成的数学模型进行求解,根据平差结果来确定观测值中是否存在粗差,数学模型是否有需要改进的部分,若存在问题,则采用相应的方法进行处理并重新进行求解;若未发现问题,则输出最终结果,并进行后续的数据处理。 2、三维约束平差 三维约束平差是以基线解算所得到的三维静态基线向量为观测值,在平差过程中引入会使 GPS 网的尺度、方向和位置发生变化的外部起算数据,从而实现 GPS 网成果由基线解算时 GPS 卫星星历所采用的参照系( WGS84 )到特定参照系的转换,得到在特定参照系下的经过用户约束条件约束的点三维空间坐标。二、南方GPS数据处理软件的平差方式

三维约束平差是指在基线解算后,WGS84坐标系下的三维平差,在三维平差中是不需要当地平面直角坐标系下的已知点坐标,当需要用到WGS84经纬度或空间直角坐标的用户可加载已知点的WGS84空间坐标(如果只有经纬度时,可采用 COORD4.1软件进行转换,本站免费提供)进行三维约束平差,即可得到与已知点相匹配的WGS84坐标。 一般情况下,在“已知点坐标录入”窗口中,我们都没有输入WGS8坐标,而只输入当地坐标系下的已知坐标,此时GPS处理软件会自动识取一个坐标点的WGS84坐标进行约束平差。如下图: 如果在某些控制测量中,需要得到精确的WGS84经纬度或空间坐标时,让系统自动识取显然是不行的,此时我们只要为参与平差的已知点的WGS84空间坐标输入后再进行三维平差即可 在这里,我们加入了两个已知点的WGS84空间坐标,三维平差后,列表中会显示两个"固定"字样的点,说明,在进行三维平差中,我们把这两个点做为起算点,进行平差别的未知点。

测量坐标计算

一、坐标正反算: 数学数轴X (横轴)Y (竖轴) 测量数轴Y (横轴)X (竖轴),测量计算中以测量竖轴判断象限,象限以顺时针排列。 正算cos AB B A AB X X D α?=+ sin AB B A AB Y Y D α=+? 直圆点里程ZY=JD-T 圆直点里程YZ=ZY+L 曲中点里程QZ=YZ-L/2 R>300m 时,曲线上20m 定一个桩,R<200m 时,曲线上100m 定一个桩。 l i 为曲线点至ZY (或YZ )的曲线长 i 点与ZY 点在曲线上夹角 i 180= i l R απ?

i 点与ZY 点在X 上变化 sin i i x R α= i 点与ZY 点在Y 上变化 () 1cos i i y R α=- 2.缓和曲线和圆曲线相对坐标计算 0缓和曲线长 001802l R βπ=? 24 003-242688l l p R R =3002 2240l l m R =- 00018036l R βδπ ==? 切线支距法

缓和曲线: 59 2244 00403456l l x l R l R l =-+ 3711 3355 000 -633642240l l l y Rl R l R l =+ 圆曲线:00002290180180==2l l l l l l R R R ?βπππ ---?=?+? () 特别提示:此处线路转向±与其他情况正好相反! 3、已知两坐标系纵轴夹角计算 X 0、Y 0为施工坐标原点,α为两坐标系纵轴夹角 0cos sin p p X X x y αα=+- 0cos sin p p Y Y y x αα=+-

高斯投影正反算 c#代码

高斯投影正反算程序设计 一.程序设计流程 本程序的设计思路如下: (1),程序采用VS08版本作为开发平台,并采用C#语言作为开发语言,设计为WindowsForm 窗体程序形式。 (2),程序主要的算法来自于教材。但是本程序为了更加实用,添加了更多的解算基准,包括:WGS-84,国际椭球1975,克氏椭球,和2000国家大地坐标系。 (3),程序为了更方便的读取数据和输出数据,故需要自己定义了固定的数据输入格式和数据输出格式或形式,请老师注意查看。 二.代码 using System; using Syst using https://www.sodocs.net/doc/f54067059.html,ponentModel; using System.Data; using System.Drawing; using System.Text; namespace Gauss { public partial class Form1 : Form { //大地坐标 //Geodetic Coordinate public struct CRDGEODETIC { public double dLongitude; public double dLatitude; public double dHeight; } //笛卡尔坐标

//Cartesian Coordinate public struct CRDCARTESIAN { public double x; public double y; public double z; } public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { double ee = 0; double a = 0; string tt; try { } catch { MessageBox.Show("Gauss Inverse: Choose datum error!"); return; } if (https://www.sodocs.net/doc/f54067059.html,pareTo("克氏椭球")==0) { a = 6378245.00; } if (https://www.sodocs.net/doc/f54067059.html,pareTo("WGS-84") == 0) { a = 6378137.00; } if (https://www.sodocs.net/doc/f54067059.html,pareTo("1975国际椭球") == 0)

工程测量计算坐标

知道方位角与距离怎么计算坐标 设原点坐标为(x,y),那么计算坐标(x1,y1)为 x1=x+s·cosθ y1=y+s·sinθ 其中θ为方位角,s为距离 CAD里计算方位角与距离 CAD默认的世界坐标系跟测量上用的坐标系就是不同的。世界坐标系中的X即测量坐标系中的Y,世界坐标系中的Y即测量坐标系中的X。 不知道您就是不就是要编程的方法或源程序?下面就是在CAD下的常用操作方法: 用命令id可以查瞧点的XYZ坐标 例如: 命令: '_id 指定点: X = 517、0964 Y = 431、1433 Z = 0、0000 命令: ID 指定点: X = 879、0322 Y = 267、6949 Z = 0、0000 用命令dist(快捷命令di)即可知道两点间的角度与距离 例如: 命令: '_dist 指定第一点: 指定第二点: 距离= 397、1308,XY 平面中的倾角= 335d41'46、7", 与XY 平面的夹角= 0d0'0、0" X 增量= 361、9358, Y 增量= -163、4483, Z 增量= 0、0000 其中的“XY 平面中的倾角= 335d41'46、7”就是世界坐标系内的平面夹角,用450度减去这个值335d41'46、7"即就是坐标方位角114°18′13、3〃。 您可以用计算器验算一下,点1、X = 431、1433,Y = 517、0964;点2、X = 267、6949,Y = 879、0322的坐标方位角与距离值就是不就是114°18′13、3〃与397、131m。 已知两坐标点求方位角与距离的计算公式 如点A(X1,Y1 ) 点B(X2,Y2) A到B的方位角为:Tan(Y2-Y1)/(X2-X1)其中 (X2-X1)>0时加360°,(X2-X1)<0时加180° 而距离就就是((X2-X1)平方+(Y2-Y1)平方)最后开方得到的值即为A到B距离 方位角坐标计算公式

坐标正反算

一、坐标正算与坐标反算 1、坐标正算 已知点的坐标、边的方位角、两点间的水平距离,计算待定点的坐标,称为坐标正算。如图6-6 所示,点的坐标可由下式计算: 式中、为两导线点坐标之差,称为坐标增量,即: 【例题6-1】已知点A坐标,=1000、=1000、方位角 =35°17'36.5",两点水平距离=200.416,计算点的坐标? 35o17'36.5"=1163.580 35o17'36.5"=1115.793 2、坐标反算 已知两点的坐标,计算两点的水平距离与坐标方位角,称为坐标反算。如图6-6可知,由下式计算水平距离与坐标方位角。 (6-3) (6-4)式中反正切函数的值域是-90°~+90°,而坐标方位角为0°~360°,因此坐标方位角的值,可根据、的正负号所在象限,将反正切角值换算为坐标方位角。

【例题6-2】=3712232.528、=523620.436、 =3712227.860、=523611.598,计算坐标方位角计算坐标方位角 、水平距离。 =62°09'29.4"+180°=242°09'29.4" 注意:一直线有两个方向,存在两个方位角,式中:、 的计算是过A点坐标纵轴至直线的坐标方位角,若所求坐标方位角为,则应是A点坐标减点坐标。 坐标正算与反算,可以利用普通科学电子计算器的极坐标和直角坐标相互转换功能计算,普通科学电子计算器的类型比较多,操作方法不相同,下面介绍一种方法。 【例题6-3】坐标反算,已知=2365.16、=1181.77、 =1771.03、=1719.24,试计算坐标方位角、水平距离。 键入1771.03-2365.16按等号键[=]等于纵坐标增量,按储存键[], 键入1719.24-1181.77按等号键[=]等于横坐标增量,按[]键输入,按[]显示横坐标增量,按[]键输入,按第二功能键[2ndF],

高斯投影正反算编程

高斯投影正反算编程 一、题目: 已知部分数据,根据高斯投影正反算思想进行编程,并采用克氏椭球,按3°或6°带投影。 正算:已知大地坐标B 、L, 二、已知数据: 正算: B=51.38439023 L=111.02131360 反算: x=5724004.723 y=19502559.920 三、计算结果: 正算结果: x=5724004.723 y=19502559.920 反算结果: B=51.38439023 L=111.02131360

五、源代码: #include"gaosi.h" #include"math.h" #include"stdio.h" #include"tchar.h" #include"stdlib.h" #define pi 3.141592653589793 #define rho 206265 void Calculateellipse2plane(double B,double L); void Calculateplane2ellipse(double x,double y); double Dms2Rad(double Dms); double D2Dms(double D); double Dms2D(double Dms);

int main() { double B=0,L=0; double x=0,y=0; int i=0; printf("如使用高斯投影坐标正算,请输入1;反算,请输入2\n"); scanf_s("%d",&i); if(i==1) { printf("请输入大地坐标纬度B(度分秒):\n"); scanf_s("%lf",&B); printf("请输入大地坐标经度L(度分秒):\n"); scanf_s("%lf",&L); Calculateellipse2plane(B,L); } if(i==2) { printf("请输入国家统一坐标x(m):\n"); scanf_s("%lf",&x); printf("请输入国家统一坐标y(m):\n"); scanf_s("%lf",&y); Calculateplane2ellipse(x,y); } return 0; } void Calculateellipse2plane(double B,double L) //高斯投影正算主体{ double l=0,Lo=0,a0=0,a3=0,a4=0,a5=0,a6=0,n=0,c=0; double x=0,y=0; double m=0,p=0,q=0; int N=0,i=0; //带号 printf("如使用6°带请输入1,使用3°带请输入2\n"); scanf_s("%d",&i); if(i==1) //已知a点在6°带的带号和中央子午线经度 { N=int(Dms2D(L)/6); Lo=6*N-3; } if(i==2) //已知a点在3°带的带号和中央子午线经度 { N=int((Dms2D(L)+1.5)/3);

相关主题