高斯投影正反算编程

高斯投影正反算编程

ID:40125125

大小:95.83 KB

页数:20页

时间:2019-07-22

高斯投影正反算编程_第1页
高斯投影正反算编程_第2页
高斯投影正反算编程_第3页
高斯投影正反算编程_第4页
高斯投影正反算编程_第5页
资源描述:

《高斯投影正反算编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档高斯投影正反算编程一.高斯投影正反算基本公式(1)高斯正算基本公式(2)高斯反算基本公式标准文案实用文档以上主要通过大地测量学基础课程得到,这不进行详细的推导,只是列出基本公式指导编程的进行。二.编程的基本方法和流程图(1)编程的基本方法标准文案实用文档高斯投影正反算基本上运用了所有的编程基本语句,本文中是利用C++语言进行基本的设计。高斯正算中对椭球参数和带宽的选择主要运用了选择语句。而高斯反算中除了选择语句的应用,在利用迭代算法求底点纬度还应用了循环语句。编程中还应特别注意相关的度分秒和弧度之间的相互转换,这是极其重要的。(2)相关流程图1)正算

2、标准文案实用文档输入大地坐标B,L和经差L0选择带宽3/6度带计算带号计算弧长计算平面坐标x,y打印x,y计算带号计算弧长计算平面坐标x,y打印x,y开始6度带3度带选择椭球参数标准文案实用文档2)反算选择椭球参数开始输入自然值坐标x,y和经差L0利用迭代算法求解底点纬度利用公式计算B和L打印B和L标准文案实用文档三.编程的相关代码(1)正算#include"stdio.h"#include"stdlib.h"#include"math.h"#include"assert.h"#definepi(4*atan(1.0))inti;structjin{doub

3、leB;doubleL;doubleL0;};structjing[100];main(intargc,double*argv[]){标准文案实用文档FILE*r=fopen("a.txt","r");assert(r!=NULL);FILE*w=fopen("b.txt","w");assert(r!=NULL);inti=0;while(fscanf(r,"%lf%lf%lf",&g[i].B,&g[i].L,&g[i].L0)!=EOF){doublea,b;intzuobiao;printf("请输入坐标系:北京54=1,西安80=2,WGS84

4、=3:");scanf("%d",&zuobiao);getchar();if(zuobiao==1){a=6378245;b=6356863.0187730473;}标准文案实用文档if(zuobiao==2){a=6378140;b=6356755.2881575287;}if(zuobiao==3){a=6378137;b=6356752.3142;}//选择坐标系//doublef=(a-b)/a;doublee,e2;e=sqrt(2*f-f*f);e2=sqrt((a/b)*(a/b)-1);//求椭球的第一,第二曲率//doublem0,m2,

5、m4,m6,m8;标准文案实用文档doublea0,a2,a4,a6,a8;m0=a*(1-e*e);m2=3*e*e*m0/2;m4=5*e*e*m2/4;m6=7*e*e*m4/6;m8=9*e*e*m6/8;a0=m0+m2/2+3*m4/8+5*m6/16+35*m8/128;a2=m2/2+m4/2+15*m6/32+7*m8/16;a4=m4/8+3*m6/16+7*m8/32;a6=m6/32+m8/16;a8=m8/128;doubleBmiao,Lmiao,L0miao;Bmiao=(int)(g[i].B)*3600.0+(int)((g

6、[i].B-(int)(g[i].B))*100.0)*60.0+(g[i].B*100-(int)(g[i].B*100))*100.0;标准文案实用文档Lmiao=(int)(g[i].L)*3600.0+(int)((g[i].L-(int)(g[i].L))*100.0)*60.0+(g[i].L*100-(int)(g[i].L*100))*100.0;L0miao=(int)(g[i].L0)*3600.0+(int)((g[i].L0-(int)(g[i].L0))*100.0)*60.0+(g[i].L0*100-(int)(g[i].L0*

7、100))*100.0;doubledb;db=pi/180.0/3600.0;doubleB1,L1,l;B1=Bmiao*db;L1=Lmiao*db;l=L1-L0miao*db;//角度转化为弧度//doubleT=tan(B1)*tan(B1);doublen=e2*e2*cos(B1)*cos(B1);doubleA=l*cos(B1);doubleX,x,y;X=a0*(B1)-a2*sin(2*B1)/2+a4*sin(4*B1)/4-a6*sin(6*B1)/6+a8*sin(8*B1)/8;//求弧长//doubleN=a/sqrt(1-

8、e*e*sin(B1)*sin(B1));标准文案实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。