您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 测绘程序设计结业考核报告大地坐标和大地空间直角坐标的互换
测绘程序设计结业考核报告大地坐标和大地空间直角坐标的互换学生姓名班级成绩指导教师(签字)地质与测绘学院测绘工程系年月日一、目的和意义坐标转换是空间实体的位置描述,是从一种坐标系统变换到另一种坐标系统的过程。通过建立两个坐标系统之间一一对应关系来实现。是各种比例尺地图测量和编绘中建立地图数学基础必不可少的步骤。在实际应用中必须变换到国家统一坐标系或地方独立坐标系上来。因此,这种坐标转换具有很大的现实意义,使各种测量工作得到实时、快捷的同时得到坐标系统的统一。二、原理和过程本程序数以大地坐标和大地空间直角坐标的相互换为内容展开的,其中包括了大地坐标系转化为大地空间直角坐标系,大地空间直角坐标系转化为大地坐标系,参数设置,打开文件,保存文件等功能。界面清晰,简洁,易懂,可视化好。(一)原理空间直角坐标系的坐标系原点位于参考椭球的中心,Z轴指向参考椭球的北极,X,Y轴位于赤道面上且按右手系与X轴呈90°夹角。某点在空间中的坐标可轴指向起始子午面与赤道的交点用该点在此坐标系的各个坐标轴上的投影来表示。空间直角坐标系可用图所示:空间大地坐标系是采用大地经、纬度和大地高来描述空间位置的。纬度是空间的点与参考椭球面的法线与赤道面的夹角;经度是空间中的点与参考椭球的自转轴所在的面与参考椭球的起始子午面的夹角;大地高是空间点沿参考椭球的法线方向到参考椭球面的距离。空间大地坐标系可用所示:大地空间直角坐标系大地坐标系空间直角坐标系与空间大地坐标系间的转换,图表示了空间直角坐标系与空间大地坐标系之间的关系:XTYZHOLB地球空间直角坐标系与大地坐标系在相同的基准下空间大地坐标系向空间直角坐标系的转换公式为:BHeNZLBHNYLBHNXsin])1([sincos)(coscos)(2(2-1)式中,WaN,a为椭球的长半轴,N为椭球的卯酉圈曲率半径a=6378.137kmb=6356.7523141kmBeW22sin12222abae,e为椭球的第一偏心率,b为椭球的短半轴在相同的基准下空间直角坐标系向空间大地坐标系的转换公式为NBRHXYarctgLWBZaetgarctgBcoscossin12(2-2)式中22YXZarctg222ZYXR(二)过程由源坐标类型转化为目标坐标类型,根据所选的椭球基准(椭球七参数),再计算出所需的参数,而后根据原理中的转换公式计算出所要求得的目标坐标的未知量。具体过程如下:1.如图所示为程序的主界面:在菜单栏的“文件”中选择“打开”弹出窗体,选择要打开文件的路径。界面如图所示:通过单选按钮可以选选择源坐标类型和目标坐标类型,输入源坐标类型的坐标值,转换前线进行参数设置。2..参数设置界面如下:输入椭球基本参数,点击“计算其余参数”按钮,计算其余参数,完成后点击“设置完成”按钮,结束参数设置。返回到计算主界面。3.坐标转换。点击“转换”按钮进行计算,坐标反向转换时亦同。如图所示:4.文件保存。完成后可将转换数据写入到文件中,在菜单栏中点击“文件”中的“保存”将数据保存到文件夹的“MyFile。Txt”中,可在中查看。界如图所示:保存完后退出程序。三、程序代码1.主窗体计算代码OptionExplicitConstPI=3.141592652'定义圆周率PIPrivateSubCommand1_Click()DimXAsDouble'大地空间坐标系的x,y,zDimYAsDoubleDimzAsDoubleDimb2AsDouble'度分秒化为弧度的过程量b2,l2Diml2AsDoubleDimbAsDouble'大地坐标系的l,h,bDimlAsDoubleDimhAsDoubleDimNAsDouble'N为椭球的卯酉圈曲率半径DimwbAsDoubleDimeAsDouble'第一偏心率eDimGAsDouble'公式中的量G,RDimRAsDoubleDimwAsDouble'w为第一基本纬度函数DimaAsDouble'长半轴aDimdAsDouble'd,f,m分别为度,分,秒DimfAsDoubleDimmAsDoubleIfVal(设置参数.Label9.Caption)=0ThenMsgBox请先设置参数ElseIfOption1.Value=TrueThenb2=Val(Text1.Text)l2=Val(Text2.Text)h=Val(Text3.Text)N=Val(设置参数.Label5.Caption)e=Val(设置参数.Label9.Caption)d=Int(b2)'大地坐标中纬度b的度分秒化为弧度f=Int((b2-d)*100)m=Val(Right(Str$(b2),2))b=Val(Format(Str$((d+f/60+m/3600)/180*PI),#00000000.00000))d=Int(l2)'大地坐标中经度l的度分秒化为弧度f=Int((l2-d)*100)m=Val(Right(Str$(l2),2))l=Val(Format(Str$((d+f/60+m/3600)/180*PI),#00000000.00000))X=(N+h)*Cos(b)*Cos(l)'由大地坐标系转化为大地空间坐标系Y=(N+h)*Cos(b)*Sin(l)z=(N*(1-e^2)+h)*Sin(b)Text4.Text=Format(X,0.00000)Text5.Text=Format(Y,0.00000)Text6.Text=Format(z,0.00000)ElseX=Val(Text1.Text)Y=Val(Text2.Text)z=Val(Text3.Text)N=Val(设置参数.Label5.Caption)e=Val(设置参数.Label9.Caption)w=Val(设置参数.Label7.Caption)a=Val(设置参数.Text1.Text)G=Atn(z/Sqr(X^2+Y^2))'由大地空间坐标系转化为大地坐标系R=Sqr(X^2+Y^2+z^2)b=Atn(Tan(G)*(1+a*(e^2)*Sin(wb)/w))l=Atn(Y/X)h=R*Cos(G)/Cos(wb)-Nb=b*180/PI*3600'纬度b由弧度化为“度.分秒”d=b\3600b=b-d*3600f=b\60m=Val(Format(Str(b-f*60),#0.0))Text4.Text=(d+f/100+m/10000)l=l*180/PI*3600'经度l由弧度化为“度.分秒”d=l\3600l=l-d*3600f=l\60m=Val(Format(Str(b-f*60),#0.0))Text5.Text=(d+f/100+m/10000)Text6.Text=Val(Format(Str(h),#0.00000))EndIfEndIfEndSubPrivateSubCommand2_Click()同基准下大地坐标和大地空间坐标间的转换.HideEndSubPrivateSubOption1_Click()Label1.Caption=B=Label2.Caption=L=Label3.Caption=H=Text1.Text=29.3511'赋初始值Text2.Text=121.2627Text3.Text=93.401EndSubPrivateSubOption2_Click()Label1.Caption=X=Label2.Caption=Y=Label3.Caption=Z=Text1.Text=1000'赋初始值Text2.Text=1000Text3.Text=1000EndSubPrivateSubOption3_Click()Label4.Caption=B=Label5.Caption=L=Label6.Caption=H=Text4.Text=Text5.Text=Text6.Text=EndSubPrivateSubOption4_Click()Label4.Caption=X=Label5.Caption=Y=Label6.Caption=Z=EndSubPrivateSub保存_Click()‘保存文件DimiAsIntegerDimjAsIntegerDimcAsIntegerMsgBox请在文件夹中的“MyFile.txt”中察看!OpenApp.Path&\MyFile.txtForOutputAs#1Print#1,椭球七参数为:Print#1,1.长半轴长a为:;设置参数.Text1.TextPrint#1,2.长半轴长b为:;设置参数.Text2.TextPrint#1,3.纬度值B为:;设置参数.Text3.TextPrint#1,4.椭球的卯酉圈曲率半径N:;设置参数.Label5.CaptionPrint#1,5.第一基本纬度函数W:;设置参数.Label7.CaptionPrint#1,6.椭球的第一偏心率e:;设置参数.Label9.CaptionPrint#1,7.椭球的第二偏心率e:;设置参数.Label12.CaptionPrint#1,Print#1,大地坐标系:Print#1,大地纬度B为:;Text1.TextPrint#1,大地纬度B为:;Text2.Text;(度.分秒)Print#1,大地高H为:;Text3.Text;(m)Print#1,Print#1,大地空间坐标系:Print#1,大地空间坐标系X为:;Text4.TextPrint#1,大地空间坐标系Y为:;Text5.TextPrint#1,大地空间坐标系Z为:;Text6.Text;(m)Close1EndSubPrivateSub打开_Click()选择文件.ShowEndSubPrivateSub七参数设置_Click()设置参数.ShowEndSub2.设置参数窗体代码OptionExplicitConstPI=3.1415926PrivateSubCommand1_Click()DimaAsDouble,tAsDoubleDimeAsDouble,wdAsDouble'wd为纬度值DimbAsDouble,dAsDoubleDimfAsDouble,mAsDouble'd为度,f为分,m为秒Dimgc1AsStringa=Val(Text1.Text)'各参数赋值b=Val(Text2.Text)t=Val(Text3.Text)d=Int(t)'度分秒化为弧度f=Int((t-d)*100)m=Val(Right(Str$(t),2))wd=Val(Format(Str$((d+f/60+m/3600)/180*PI),#0.00000))Label5.Caption=Format((a/wd),#0.00000)'计算输出NLabel9.Caption=Format((Sqr(a*a-b*b)/a),#0.00000)'计算输出偏心率e1Label12.Caption=Format((Sqr(a*a-b*b)/b),#0.00000)'计算输出偏心率e2Label7.Caption=Sqr(1-e*e*Sin(wd)*Sin(wd))'计算输出WEndSubPrivateSubCommand2_Click()IfVal(设置参数.Label9.Caption)=0ThenMsgBox请先计算其余参数Else同基准下大地坐标和大地空间坐标间的转换.Show'回到计算界面设置参数.Hide'关闭设置参数窗体EndIfEndSub3.选择打开文件代码OptionExplicitPrivateSubCommand1_Click()同基准下大地坐标和大地空间坐标间的转换.Show选择文件.HideEndSubPrivateSubCommand2_Click()选择文件.HideEndS
本文标题:测绘程序设计结业考核报告大地坐标和大地空间直角坐标的互换
链接地址:https://www.777doc.com/doc-2229117 .html