如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
高斯投影坐标正反算编程报告1.编程思想进行高斯投影坐标正反算的编程需要牵涉到大量的公式,为了使程序条理更清楚,各块的数据复用性更强,这里采取了结构化的编程思想。程序由四大块组成。文件用于存放main()函数,是整个程序的入口。通过结构化的编程尽力使main()函数变得简单。和用于存放计算过程中进行角度弧度换算时所要用到的一些自定的转换函数。和用于存放Zhengsuan类,在Zhengsuan类中声明了高斯投影坐标正算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及正算计算。通过get函数获得相应的正算结果。和用于存放Fansuan类,类似于Zhengsuan类,Fansuan类中声明了高斯投影坐标反算所要用到的所有变量,在类的构造函数中进行成员变量的初始化及反算计算。通过get函数获得相应的反算结果。2.计算模型高斯投影正算公式NNxXsinBcosBl2simBcos3B(5t29244)l422244NsinBcos5B(6158t2t4)l67206NNycosBlcos3B(1t22)l363Ncos5B(518t2t4142582t2)l51205高斯投影反算公式ttBBfy2f53t2292t2y4f2MN24MN3fffffffftfy6190t245t4y6720MN5ffffyy3l12t22NcosB6N3cosBffffffy5528t224t46282t2120N5cosBfffffff3.程序框图开始输入B,L求定带号N,中央纬度L,纬度差l0正按照实用公式计算x,y算换算为国家统一坐标X,Y输出X,Y输入国家统一坐标X,Y由Y取定带号N,并换算出x,y求出中央经线L0反算按照实用公式计算B,lL=L0+l求出大地经度L输出B,L结束4.计算结果5.附录:程序代码517"<<endl;cin>>myX>>myY;FansuanmyFansuan1(myX,myY);();}////////////////////////////////////////////////////////////////////////#include""////////////////////////////////////////////////////////////////////////Construction/Destruction//////////////////////////////////////////////////////////////////////Fansuan::Fansuan(){}Fansuan::Fansuan(doubleX,doubleY){this->X=X;this->Y=Y;//初始化x,yN=(int)(Y/1000000);//取出带号L0=6*N-3;//初始化该带号的中央经线经度x=X;y=Y-1000000*N-500000;beta=x/;//初始化beta,弧度单位betaSecond=beta*rouSecond;//初始化beta,秒单位betaDegree=betaSecond/3600;//初始化beta,整度数单位Bf=beta+(+(293622+(2350+22*cos(beta)*cos(beta))*cos(beta)*cos(beta))*cos(beta)*cos(beta))*(1e-10)*sin(beta)*cos(beta);//初始化Bf,弧度单位BfSecond=Bf*rouSecond;//初始化Bf,秒单位BfDegree=BfSecond/3600;//初始化Bf,整度数单位Nf=Z=y/(Nf*cos(Bf));b2=+*cos(Bf)*cos(Bf))*sin(Bf)*cos(Bf);b4=++*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf);b3=b5=Bsecond=BfSecond-(1-*Z*Z)*Z*Z)*Z*Z*b2*rouSecond;//计算大地经度B,单位为秒B=Bsecond/3600;//用整度数表示Blsecond=(1-(b3-b5*Z*Z)*Z*Z)*Z*rouSecond;//计算经度差l,单位为秒