高斯投影正反算及换带计算VB程序设计

  • 格式:doc
  • 大小:224.50 KB
  • 文档页数:28

1 摘要 本设计主要阐述了高斯投影分带以及高斯投影坐标正、反算的推导公式,从而根据公式来编写基于VB语言基础上的换带及坐标转换程序。作者系统介绍了测量中经常使用的坐标系以及地图投影的概念和高斯投影的具体含义,叙述了换带和临带计算的原因以及它们在运算时的原理、过程,详细叙述了在VB语言中实现的原理基础以及代码的编写设计。 在设计中根据高斯的正反算公式写出了基于VB语言的程序设计,其程序设计任务完成了由地理坐标向54平面坐标系和80平面坐标系转换的功能,以及由54坐标系和80坐标系向地理坐标系转换的功能,同时也有同一平面坐标系不同投影带之间的换带计算和同一平面坐标系相同投影带临带计算等相互转换的功能。 关键词:高斯投影、坐标正反算、换带计算、临带换算、程序设计

5 程序设计 5.1界面设计 本程序要实现的功能是根据所选择的椭球参数和指定的分带情况,将已知地理坐标或高斯投影坐标经正算和反算求得相应的高斯坐标和地理坐标,以及相应的换带计算和临带计算。因此需要用一个框架控件来组织椭球参数、两个框架分别组织分带选择和换算方式选择,两个框架组织地理坐标和高斯坐标,三个命令按钮分别执行投影计算、换带和临带计算。程 2

序设计界面如图5-1[9] 图5-1 高斯投影计算程序设计界面 命令按钮属性设置表如表5-1 表5-1 命令按钮属性设置表 对象 属性 值 Command1 Caption BL->xy Command1 Name cmdCalc Command2 Caption 6->3 Command2 Name cmdChange Command3 Caption 临带计算

Command3 Name cmdNear 3

选择椭球框架内控件的属性值表5-2 表5-2 择椭球框架内控件的属性值 对象 属性 值 Text1 Text 6378245 Text1 Name txta Text2 Text 298.3 Text2 Name txtalfa

单选按钮控件属性设置表5-3 5-3 单选按钮控件属性设置表 对象 属性 值 Option1 Caption 六度带

Option1 Name opt6du Option2 Caption 三度带

Option2 Name Opt3du Option3 Caption 正算

Option3 Name optTran Option4 Caption 反算

Option4 Name optCon

5.2程序代码设计 在这里主要介绍高斯投影坐标转换的正反算代码设计,完整的代码见附录1所示。 5.2.1投影计算过程的正算子过程代码设计 4

①54系高斯投影正算子过程 Public Sub Pro54() Dim ll#, N#, a0#, a4#, a6#, a3#, a5#, cosB# cosB = Cos(B) ll = L - DoToHu(L0) N = 6399698.902 - (21562.267 - (108.973 - 0.612 * cosB * cosB) * cosB * cosB) * cosB * cosB a0 = 32140.404 - (135.3302 - (0.7092 - 0.004 * cosB * cosB) * cosB * cosB) * cosB * cosB a4 = (0.25 + 0.00252 * cosB * cosB) * cosB * cosB - 0.04166 a6 = (0.166 * cosB * cosB - 0.084) * cosB * cosB a3 = (0.3333333 + 0.001123 * cosB * cosB) * cosB * cosB - 0.1666667 a5 = 0.0083 - (0.1667 - (0.1968 + 0.004 * cosB * cosB) * cosB * cosB) * cosB * cosB X = 6367558.4969 * B - (a0 - (0.5 + (a4 + a6 * ll * ll) * ll * ll) * ll * ll * N) * Sin(B) * cosB Y = (1 + (a3 + a5 * ll * ll) * ll * ll) * ll * N * cosB End Sub ②80系高斯投影正算子过程 Public Sub Pro80() Dim ll#, N#, a0#, a4#, a6#, a3#, a5#, cosB# cosB = Cos(B) ll = L - DoToHu(L0) N = 6399596.652 - (21565.045 - (108.996 - 0.603 * cosB * cosB) * cosB * cosB) * cosB * cosB a0 = 32144.5189 - (135.3646 - (0.7034 - 0.0041 * cosB * cosB) * cosB * 5

cosB) * cosB * cosB a4 = (0.25 + 0.00253 * cosB * cosB) * cosB * cosB - 0.04167 a6 = (0.167 * cosB * cosB - 0.083) * cosB * cosB a3 = (0.3333333 + 0.001123 * cosB * cosB) * cosB * cosB - 0.1666667 a5 = 0.00878 - (0.1702 - 0.20382 * cosB * cosB) * cosB * cosB X = 6367452.1328 * B - (a0 - (0.5 + (a4 + a6 * ll * ll) * ll * ll) * ll * ll * N) * Sin(B) * cosB Y = (1 + (a3 + a5 * ll * ll) * ll * ll) * ll * N * cosB End Sub 5.2.2投影计算过程的反算子过程代码设计 ①54系高斯投影反算子过程[12] Public Sub ConPro54() Dim Bf#, bet#, Z#, Nf#, b2#, b3#, b4#, b5#, cos2B#, cos2Bf# bet = X / 6367558.4969 cos2B = Cos(bet) * Cos(bet) Bf = bet + (50221746 + (293622 + (2350 + 22 * cos2B) * cos2B) * cos2B) * 0.0000000001 * Sin(bet) * Cos(bet) cos2Bf = Cos(Bf) * Cos(Bf) Nf = 6399698.902 - (21562.267 - (108.973 - 0.612 * cos2Bf) * cos2Bf) * cos2Bf Z = Y / (Nf * Cos(Bf)) b2 = (0.5 + 0.003369 * cos2Bf) * Sin(Bf) * Cos(Bf) b3 = 0.333333 - (0.166667 - 0.001123 * cos2Bf) * cos2Bf

b4 = 0.25 + (0.16161 + 0.00562 * cos2Bf) * cos2Bf b5 = 0.2 - (0.1667 - 0.0088 * cos2Bf) * cos2Bf B = Bf - (1 - (b4 - 0.12 * Z * Z) * Z * Z) * Z * Z * b2 6

L = DoToHu(L0) + (1 - (b3 - b5 * Z * Z) * Z * Z) * Z End Sub ②80系高斯投影反算子过程 Public Sub ConPro80() Dim Bf#, bet#, Z#, Nf#, b2#, b3#, b4#, b5#, cos2B#, cos2Bf# bet = X / 6367558.4969 cos2B = Cos(B) * Cos(B) Bf = bet + (50221746 + (293622 + (2350 + 22 * cos2B) * cos2B) * cos2B) * 0.0000000001 * Sin(bet) * Cos(bet) cos2Bf = Cos(Bf) * Cos(Bf) Nf = 6399698.902 - (21562.267 - (108.973 - 0.612 * cos2Bf) * cos2Bf) * cos2Bf Z = Y / (Nf * Cos(Bf)) b2 = (0.5 + 0.00336975 * cos2Bf) * Sin(Bf) * Cos(Bf) b3 = 0.333333 - (0.166667 - 0.001123 * cos2Bf) * cos2Bf b4 = 0.25 + (0.161612 + 0.005617 * cos2Bf) * cos2Bf b5 = 0.2 - (0.16667 - 0.00878 * cos2Bf) * cos2Bf B = Bf - (1 - (b4 - 0.147 * Z * Z) * Z * Z) * Z * Z * b2

L = DoToHu(L0) + (1 - (b3 - b5 * Z * Z) * Z * Z) * Z End Sub

5.3程序的操作介绍 下面以实例来介绍程序的操作步骤。现有已知数据如下: L=112°45′45.4545″,B=31°45′45.4545″ X=3516946.1923,y=19666998.4009