- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高斯投影正反算实习.doc
大地测量学编程实习报告
姓名:鲁尼 学号:10 班级:曼联
编程思想这个投影是由德国数学家、物理学家、天文学家高斯于19 世纪20 年代拟定,后经德国大地测量学家克吕格于1912 年对投影公式加以补充,故称为高斯-克吕格投影。
即等角横切椭圆柱投影。假想用一个圆柱横切于地球椭球体的某一经线上,这条与圆柱面相切的经线,称中央经线。以中央经线为投影的对称轴,将东西各3°或1°30′的两条子午线所夹经差6°或3°的带状地区按数学法则、投影法则投影到圆柱面上,再展开成平面,即高斯-克吕格投影,简称高斯投影。这个狭长的带状的经纬线网叫做高斯-克吕格投影带。 高斯投影正算公式就是由大地坐标(L,B)求解高斯平面坐标(x,y),而高斯投影反算公式则是由高斯平面坐标(x,y)求解大地坐标(L,B)。现行的高斯投影用表都是采用克拉索夫斯基椭球参数,这次编程计算就是采用这种椭球参数,并采用实用公式按6度分带投影。编程环境是在VC下,采用C++语言编写。程序主要分为两部分,第一部分是高斯正反算函数,第二部分是主函数。
高斯正反算函数,参考书上175页的电算公式,正算时先将度数换算成秒,再定带号n,求中央经线l0,经度差l,然后根据实用公式计算高斯平面坐标x,y。最后计算国家统一坐标的x,y,再将其输出。
计算模型
其中:
反算:在高斯投影坐标反算时,原面是高斯平面,投影面是椭球面,则有如下的投影方程:
则其的三个条件:
(1),x坐标轴投影成中央子午线,是投影的对称轴;
(2),x轴上的长度投影保持不变;
(3),正性投影条件。
相应计算公式:
其中:
5计算结果
6代码
#include stdafx.h
#includeiostream.h
#includemath.h
#includeiomanip.h
void EtranG(int xd,int xf,int yd,int yf,
double xm,double ym,double x,double y,int N0)
{ double xmm,ymm;
int L0,N01;
double l2,l,N,a0,a4,a6,a3,a5,B,x1,y1;
double cosB2;
//////此处将角度转化为用秒表示
xmm=xd*3600 + xf*60 + xm;
ymm=yd*3600 + yf*60 + ym;
N01=(yd/6+1);//////定带号
L0=6*N01-3;/////中央子午线的经度
l2=ymm-3600*L0;////l的秒表示
B = xmm/pmm;////////纬度转化为弧度
l=l2/pmm;///////将l化为弧度表示
cosB2=cos(B)*cos(B);//////定义一个cos(B)的平方
//////以下为实用公式中所对应的量N,a0,a4,a6,a3,a5,
N=6399698.902-(21562.267-(108.973-0.612*cosB2)*cosB2)*cosB2;
a0=32140.404-(135.3302-(0.7092-0.004*cosB2)*cosB2)*cosB2;
a4=(0.25+0.00252*cosB2)*cosB2-0.04166;
a6=(0.166*cosB2-0.084)*cosB2;
a3=(0.3333333+0.001123*cosB2)*cosB2-0.1666667;
a5=0.0083-(0.1667-(0.1968+0.004*cosB2)*cosB2)*cosB2;
///////////计算x,y坐标
x1=6367558.4969*B-(a0-(0.5+(a4+a6*l*l)*l*l)*l*l*N)*sin(B)*cos(B);
y1=(1+(a3+a5*l*l)*l*l)*l*N*cos(B);
/////////将值赋给函数参数
x=x1;
y=y1;
N0=N01;
}
//////高斯反算函数
void GtranE(double x,double y,int N0,double B,double L)
{
double Bf,Beta,Z,Nf,b2,b3,b4,b5;
double cosb2,cosbf,z2;
double B1,l,L1;
double L0;
L0=(N0*6-3)*3600;/////计算中央子午线经度的秒表示
///////以下为反算公式中的所对应的Beta,Bf,Beta,Z,Nf,b2,b3,b4,b5;
Bet
文档评论(0)