高斯投影正反算编程讲义.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高斯投影正反算编程 题目: 已知部分数据,根据高斯投影正反算思想进行编程,并采用克氏椭球,按3°或 6°带投影。 正算:已知大地坐标B 、L, 已知数据: 正算: B=51 L=111反算: x=5724004.723 y920 计算结果: 正算结果: x=5724004.723 y920 反算结果: B=51 L=111 计算流程图: i=1(正算) i=2(反算) 选择椭球参数 选择椭球参数(不予画出) (不予画出) 五、源代码: #include gaosi.h #include math.h #include stdio.h #include tchar.h #include stdlib.h #define pi 3.141592653589793 #define rho 206265 void Calculateellipse2plane(double B,double L); void Calculateplane2ellipse(double x,double y); double Dms2Rad(double Dms); double D2Dms(double D); double Dms2D(double Dms); int main() { double B=0,L=0; double x=0,y=0; int i=0; printf(如使用高斯投影坐标正算,请输入1;反算,请输入2\n); scanf_s(%d,i); if(i==1) { printf(请输入大地坐标纬度B(度分秒):\n); scanf_s(%lf,B); printf(请输入大地坐标经度L(度分秒):\n); scanf_s(%lf,L); Calculateellipse2plane(B,L); } if(i==2) { printf(请输入国家统坐标x(m):\n); scanf_s(%lf,x); printf(请输入国家统一坐标y(m):\n); scanf_s(%lf,y); Calculateplane2ellipse(x,y); } return 0; }void Calculateellipse2plane(double B,double L) //高斯投影正算主体{ double l=0,Lo=0,a0=0,a3=0,a4=0,a5=0,a6=0,n=0,c=0; double x=0,y=0; double m=0,p=0,q=0; int N=0,i=0; //带号 printf(如使用带请输入1,使用3°带请输入2\n); scanf_s(%d,i); if(i==1) //已知a点在6°带的带号和中央子午线经度 { N=int(Dms2D(L)/6); Lo=6*N-3; } if(i==2) //已知a点在3°带的带号和中央子午线经度 { N=int((Dms2D(L)+1.5)/3); Lo=3*N; } l=(Dms2D(L)-Dms2D(Lo))*3600/rho; //单位为 B=Dms2Rad(B); L=Dms2Rad(L); Lo=Dms2Rad(Lo); l=pow(l,2); c=pow(cos(B),2); //c=cos(B)的平方 n=6399698.902-(21562.267-(108.973-0.612*c)*c)*c; a0=32140.404-(135.3302-(0.7092-0.0040*c)*c)*c; a3=(0.3333333+0.001123*c)*c-0.1666667; a4=(0.25+0.00252*c)*c-0.04166; a5=0.0083-(0.1667-(0.1968+0.004*c)*c)*c; a6=(0.166*c-0.084)*c; //计算平面坐标并化为国家统一坐标 m=sin(B)*cos(B); p=1+(a3+a5*l)*l; x=6367558.4969*B-(a0-(0.5+(a4+a6*l)*l)*l*n)*m; y=(p)*sqrt(l)*n*cos(B); y=y+500000+N*1

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档