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

上传人:好** 文档编号:115457494 上传时间:2019-11-13 格式:DOC 页数:28 大小:224.50KB
返回 下载 相关 举报
高斯投影正反算及换带计算vb程序设计_第1页
第1页 / 共28页
高斯投影正反算及换带计算vb程序设计_第2页
第2页 / 共28页
高斯投影正反算及换带计算vb程序设计_第3页
第3页 / 共28页
高斯投影正反算及换带计算vb程序设计_第4页
第4页 / 共28页
高斯投影正反算及换带计算vb程序设计_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《高斯投影正反算及换带计算vb程序设计》由会员分享,可在线阅读,更多相关《高斯投影正反算及换带计算vb程序设计(28页珍藏版)》请在金锄头文库上搜索。

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

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

3、mmand2Caption6-3Command2NamecmdChangeCommand3Caption临带计算Command3NamecmdNear选择椭球框架内控件的属性值表5-2表5-2 择椭球框架内控件的属性值对象属性值Text1Text6378245Text1NametxtaText2Text298.3Text2Nametxtalfa单选按钮控件属性设置表5-35-3 单选按钮控件属性设置表对象属性值Option1Caption六度带Option1Nameopt6duOption2Caption三度带Option2NameOpt3duOption3Caption正算Option3Na

4、meoptTranOption4Caption反算Option4NameoptCon5.2程序代码设计在这里主要介绍高斯投影坐标转换的正反算代码设计,完整的代码见附录1所示。5.2.1投影计算过程的正算子过程代码设计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) * cos

5、B * 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 - (

6、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 * cosBEnd Sub80系高斯投影正算子过程Public Sub Pro80() Dim ll#, N#, a0#, a4#, a6#, a3#, a5#, cosB# cosB =

7、 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 * cosB) * cosB * cosB a4 = (0.25 + 0.00253 * cosB * cosB) * cosB * cosB - 0.04167 a6 = (0.167 * cosB * cosB - 0

8、.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 * c

9、osBEnd Sub5.2.2投影计算过程的反算子过程代码设计54系高斯投影反算子过程12Public 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(B

10、f) * 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 *

11、cos2Bf) * cos2Bf B = Bf - (1 - (b4 - 0.12 * Z * Z) * Z * Z) * Z * Z * b2 L = DoToHu(L0) + (1 - (b3 - b5 * Z * Z) * Z * Z) * ZEnd Sub80系高斯投影反算子过程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 + (293

12、622 + (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 *

13、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) * ZEnd Sub5.3程序的操作介绍下面以实例来介绍程序的操作步骤。现有已知数据如下:L=1124545.4545,314545.4545X=351

14、6946.1923,19666998.4009其具体的操作步骤如下: 选择相关椭球在名称为“选择椭球”框架控件内选择相应的椭球体,当选择完椭球体后此时程序会显示出与其相应的椭球参数,以选择北京1954参考椭球为例,见图5-2所示。图5-2选择椭球体 分带选择在名称为“分带选择”框架控件内选择要进行计算的带宽,以六度带为例,其操作如图5-3所示。图5-3分带选择 换算方式的选择在名称为“换算方式”框架控件内选择要进行计算的方式,以选择正算为例,如图5-4所示。图5-4换算方式的选择 已知数据的输入当按以上步骤进行后应该在名称为“地理坐标”框架控件内输入大地经纬度的数值,如图5-5所示。图5-5已知数据的输入 在完成上述操作后点击按钮计算按钮,如图5-6所示。图5-6计算按钮在完成以上操作后会显示出要求的高斯平面坐标,其结果如图5-7所示。图5-7高斯平面坐标 换带计算在完成上述6带的计算后,想把结果换算到3带可直接点击换带计算的按钮,如图5-8所示。图5-8换带计算按钮完成此操作后会显示出3带的结果,如图5-9所示。图5-9换带计算后的结果 临带计算在以上操作的基础上,在程序

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号