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

上传人:b****5 文档编号:12190185 上传时间:2023-04-17 格式:DOCX 页数:24 大小:124.81KB
下载 相关 举报
高斯投影正反算及换带计算VB程序设计.docx_第1页
第1页 / 共24页
高斯投影正反算及换带计算VB程序设计.docx_第2页
第2页 / 共24页
高斯投影正反算及换带计算VB程序设计.docx_第3页
第3页 / 共24页
高斯投影正反算及换带计算VB程序设计.docx_第4页
第4页 / 共24页
高斯投影正反算及换带计算VB程序设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

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

《高斯投影正反算及换带计算VB程序设计.docx》由会员分享,可在线阅读,更多相关《高斯投影正反算及换带计算VB程序设计.docx(24页珍藏版)》请在冰豆网上搜索。

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

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

 

摘要

本设计主要阐述了高斯投影分带以及高斯投影坐标正、反算的推导公式,从而根据公式来编写基于VB语言基础上的换带及坐标转换程序。

作者系统介绍了测量中经常使用的坐标系以及地图投影的概念和高斯投影的具体含义,叙述了换带和临带计算的原因以及它们在运算时的原理、过程,详细叙述了在VB语言中实现的原理基础以及代码的编写设计。

在设计中根据高斯的正反算公式写出了基于VB语言的程序设计,其程序设计任务完成了由地理坐标向54平面坐标系和80平面坐标系转换的功能,以及由54坐标系和80坐标系向地理坐标系转换的功能,同时也有同一平面坐标系不同投影带之间的换带计算和同一平面坐标系相同投影带临带计算等相互转换的功能。

关键词:

高斯投影、坐标正反算、换带计算、临带换算、程序设计

5程序设计

5.1界面设计

本程序要实现的功能是根据所选择的椭球参数和指定的分带情况,将已知地理坐标或高斯投影坐标经正算和反算求得相应的高斯坐标和地理坐标,以及相应的换带计算和临带计算。

因此需要用一个框架控件来组织椭球参数、两个框架分别组织分带选择和换算方式选择,两个框架组织地理坐标和高斯坐标,三个命令按钮分别执行投影计算、换带和临带计算。

程序设计界面如图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

选择椭球框架内控件的属性值表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投影计算过程的正算子过程代码设计

①54系高斯投影正算子过程

PublicSubPro54()

Dimll#,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

EndSub

②80系高斯投影正算子过程

PublicSubPro80()

Dimll#,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*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

EndSub

5.2.2投影计算过程的反算子过程代码设计

①54系高斯投影反算子过程[12]

PublicSubConPro54()

DimBf#,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

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

EndSub

②80系高斯投影反算子过程

PublicSubConPro80()

DimBf#,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

EndSub

5.3程序的操作介绍

下面以实例来介绍程序的操作步骤。

现有已知数据如下:

L=112°45′45.4545″,B=31°45′45.4545″

X=3516946.1923,y=19666998.4009

其具体的操作步骤如下:

1选择相关椭球

在名称为“选择椭球”框架控件内选择相应的椭球体,当选择完椭球体后此时程序会显示出与其相应的椭球参数,以选择北京1954参考椭球为例,见图5-2所示。

图5-2选择椭球体

2分带选择

在名称为“分带选择”框架控件内选择要进行计算的带宽,以六度带为例,其操作如图5-3所示。

图5-3分带选择

3换算方式的选择

在名称为“换算方式”框架控件内选择要进行计算的方式,以选择正算为例,如图5-4所示。

图5-4换算方式的选择

4已知数据的输入

当按以上步骤进行后应该在名称为“地理坐标”框架控件内输入大地经纬度的数值,如图5-5所示。

图5-5已知数据的输入

5在完成上述操作后点击按钮计算按钮,如图5-6所示。

图5-6计算按钮

在完成以上操作后会显示出要求的高斯平面坐标,其结果如图5-7所示。

图5-7高斯平面坐标

6换带计算

在完成上述6°带的计算后,想把结果换算到3°带可直接点击换带计算的按钮,如图5-8所示。

图5-8换带计算按钮

完成此操作后会显示出3°带的结果,如图5-9所示。

图5-9换带计算后的结果

7临带计算

在以上操作的基础上,在程序界面上直接点击“临带计算”按钮后会显示临带计算的结果,如图5-10所示。

图5-10临带计算的结果示意图

当要进行三度带及反算方式进行计算时其操作步骤和以上步骤相似在此就不做介绍了。

 

6总结

在这次是实习中通过搜集各种资料和咨询各位老师终于完成了设计。

这次设计的任务完成了有地理坐标向高斯平面坐标转换的正算和反算,和在同一种高斯平面坐标系下不同投影带之间的相互转换即换带计算的功能,以及在同一种高斯平面坐标系下相同投影带之间临带换算功能。

当把已知的几组数据带入到本次所编写的程序中得到的结果与已知的数据相吻合,因此改程序的设计是成功的,它计算的结果可信度还是比较高的。

但本程序也存在着不足,不足之处是该程序的各个功能只适合我国,对与别的国家和地区是不宜使用的。

 

参考文献

[1]潘正风,杨正尧等.数字测图原理与方法[M].武汉:

武汉大学出版社,2004年,10~60

[2]熊介.椭球大地测量学[M].北京:

解放军出版社,1988年,4~15

[3]边少锋.地理坐标系与大地基准[M].北京:

国防工业出版社,2005年,1~50

[4]孔祥云.大地测量学基础[M].武汉:

武汉大学出版社,2006年,1~8

[5]孔祥云.控制测量学(下)[M].武汉:

武汉大学出版社,2002年,50~80

[6]朱华统.常用地理坐标系及其变换[M].北京:

解放军出版社,2003,15~35

[7]施一民.现代大地控制测量[M].北京:

测绘出版社,2003年,21~30

[8]冯亚明.高斯投影正反算的递推算法[J].黑龙江测绘.1997,20(3):

22~24

[9].郑永果,姚青.VisualBasic程序设计[M].东营:

石油大学出版社,2000年

[10]罗朝盛.VB6.0程序设计实用教程[M].北京:

清华大学出版社,2004年;

-25

[11]本书编委会.新编中文VB实用教程[M].西安:

西北工业大学出版社2007年,40~60

[12].G.Bomford,GEODESY[M],thirdedition,OxfordUniversityPress,1971,26~28

[13]JeanneC.Adams.Commentsonproperuseoftheterraincorrectionforthecomputationofheightanomalies.Manuscriptageodaetic,1993.26~28

[14].W.Torge,Geodesy[M],WalterdeGruyter&Co.,Berlin,1980,

[15]BerryDSandSalesTw.AnElasticTreatmentofGroundMovementDuetoMiningJ.Mech..PhysSolids9,1961,

 

致谢

这次论文设计的顺利完成得到了我的导师钟来星的大力支持,从最初的选题、材料收集、开题报告、到完成初稿,钟老师给予了很大程度上的帮助,在此对钟老师的帮助表示真心的感谢。

同时也得到了张晨晰、张纯连、赵心、于志刚、王永等老师的帮助在此表示感谢。

同时我也非常的感谢我的同学们,在我做设计的过程中他们给我提供了大量的意见以及在我遇到困难是提供了大量的帮助在此对他们表示真心的感谢。

在这四年的大学学习中我得到了许许多多老师的帮助,他们不辞辛苦把他们所能知道的知识尽他们最大可能的告诉我们,我今天的知识大部分来自于他们,没有他们的奉献就没有我今天的成绩,在此对所有教育过我的老师说声感谢。

我也非常感谢我的父母兄弟姐妹,是他们为了我的学业而辛苦的工作着,没有父母的支持我是没有机会接受教育的,他们为了儿女的幸福而默默的牺牲自己,他们不仅仅是我的经济支柱更是我的精神支柱,他们供我学习还教育我如何去做人,对此我深深的表示感谢。

同时再次的感谢我的导师钟来星他不仅教会我学习文化知识也教育我如何去做人,从他那里我学到了对工作要努力要负责,做事情要干脆利索,他的教育深深的影响着我。

 

附录

附录1高斯投影坐标转换程序的代码设计

选择椭球及显示相应的参数代码设计

当选择不同选择椭球时显示与它相应的参数代码设计如下所示:

PrivateSubForm_Load()

'初始化组合框

Combo1.AddItem"北京1954参考椭球"

Combo1.AddItem"西安1980参考椭球"

Combo1.ListIndex=0

'初始化参数

lenL=6

EndSub

选择分带及换算方式的代码设计

当选择了3°带分时代码如下:

PrivateSubopt3du_Click()

cmdchange.Caption="3°->6°"

lenL=3

EndSub

当选择了6°分带时代码如下:

PrivateSubopt6du_Click()

cmdchange.Caption="6°->3°"

lenL=6

EndSub

选择了反算方式

PrivateSuboptCon_Click()

cmdcalc.Caption="xy->BL"

TxtB.Enabled=False

TxtL.Enabled=False

TxtX.Enabled=True

TxtY.Enabled=True

TxtX.SetFocus

EndSub

选择了正算方式

PrivateSuboptTran_Click()

cmdcalc.Caption="BL->xy"

TxtB.Enabled=True

TxtL.Enabled=True

TxtX.Enabled=False

TxtY.Enabled=False

TxtB.SetFocus

EndSub

投影计算子过程的代码设计

54系高斯投影正算子过程

PublicSubPro54()

Dimll#,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

EndSub

80系高斯投影正算子过程

PublicSubPro80()

Dimll#,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*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

EndSub

54系高斯投影反算子过程

PublicSubConPro54()

DimBf#,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

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

EndSub

80系高斯投影反算子过程

PublicSubConPro80()

DimBf#,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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1