




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-作者xxxx-日期xxxx高斯投影正反算編程【精品文檔】高斯投影正反算編程一高斯投影正反算基本公式(1)高斯正算基本公式(2)高斯反算基本公式 以上主要通過大地測(cè)量學(xué)基礎(chǔ)課程得到,這不進(jìn)行詳細(xì)的推導(dǎo),只是列出基本公式指導(dǎo)編程的進(jìn)行。二編程的基本方法和流程圖(1)編程的基本方法高斯投影正反算基本上運(yùn)用了所有的編程基本語句,本文中是利用C+語言進(jìn)行基本的設(shè)計(jì)。高斯正算中對(duì)橢球參數(shù)和帶寬的選擇主要運(yùn)用了選擇語句。而高斯反算中除了選擇語句的應(yīng)用,在利用迭代算法求底點(diǎn)緯度還應(yīng)用了循環(huán)語句。編程中還應(yīng)特別注意相關(guān)的度分秒和弧度之間的相互轉(zhuǎn)換,這是極其重要的。(2)相關(guān)流程圖1)正算輸入大地坐標(biāo)B,L和經(jīng)
2、差L0選擇帶寬3/6度帶計(jì)算帶號(hào)計(jì)算弧長(zhǎng)計(jì)算平面坐標(biāo)x,y打印x,y計(jì)算帶號(hào)計(jì)算弧長(zhǎng)計(jì)算平面坐標(biāo)x,y打印x,y開始 6度帶3度帶選擇橢球參數(shù) 2)反算選擇橢球參數(shù)開始輸入自然值坐標(biāo)x,y和經(jīng)差L0利用迭代算法求解底點(diǎn)緯度利用公式計(jì)算B和L打印B和L 三編程的相關(guān)代碼(1)正算# include ""# include ""# include ""# include ""#define pi (4*atan(1.0)int i;struct jin double B; double L;double L0;stru
3、ct jin g100; main(int argc, double *argv)FILE *r=fopen("a.txt","r"); assert(r!=NULL);FILE *w=fopen("b.txt","w"); assert(r!=NULL);int i=0;while(fscanf(r,"%lf %lf %lf",&gi.B,&gi.L,&gi.L0)!=EOF) double a,b; int zuobiao; printf("n請(qǐng)輸入坐標(biāo)系:
4、北京54=1,西安80=2,WGS84=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; /選擇坐標(biāo)系/ double f=(a-b)/a; double e,e2; e=sqrt(2*f-f*f); e2=sqrt(a/b)*(a/b)-1);/求橢球的第一,第
5、二曲率/ double m0,m2,m4,m6,m8; double a0,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; double Bmiao,Lmiao, L0miao; Bmiao=(int)(gi.B)*3600.0+(i
6、nt)(gi.B-(int)(gi.B)*100.0)*60.0+(gi.B*100-(int)(gi.B*100)*100.0; Lmiao=(int)(gi.L)*3600.0+(int)(gi.L-(int)(gi.L)*100.0)*60.0+(gi.L*100-(int)(gi.L*100)*100.0; L0miao=(int)(gi.L0)*3600.0+(int)(gi.L0-(int)(gi.L0)*100.0)*60.0+(gi.L0*100-(int)(gi.L0*100)*100.0; double db; db=pi/180.0/3600.0; double B1,L
7、1,l; B1=Bmiao*db; L1= Lmiao*db; l=L1-L0miao*db;/角度轉(zhuǎn)化為弧度/double T=tan(B1)*tan(B1); double n=e2*e2*cos(B1)*cos(B1); double A=l*cos(B1); double X,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;/求弧長(zhǎng)/ double N=a/sqrt(1-e*e*sin(B1)*sin(B1); int Zonewide; int Zonenumber; printf(
8、"n請(qǐng)輸入帶寬:3度帶或6度帶Zonewide="); scanf("%d",&Zonewide); getchar(); if(Zonewide=3) Zonenumber=(int)(gi.L-Zonewide/2)/Zonewide+1); else if(Zonewide=6) Zonenumber=(int)gi.L/Zonewide+1; else printf("錯(cuò)誤"); exit(0); /選擇帶寬/ double FE=Zonenumber*1000000+500000;/改寫為國(guó)家通用坐標(biāo)/ y=FE+N
9、*A+A*A*A*N*(1-T*T+n*n)/6+A*A*A*A*A*N*(5-18*T*T+T*T*T*T+14*n*n-58*n*n*T*T)/120; x=X+tan(B1)*N*A*A/2+tan(B1)*N*A*A*A*A*(5-T*T+9*n*n+4*n*n*n*n)/24+tan(B1)*N*A*A*A*A*A*A*(61-58*T*T+T*T*T*T)/720; printf("n所選坐標(biāo)系的轉(zhuǎn)換結(jié)果:x=%lf y=%lfn",x,y);fprintf(w,"%lf %lfn",x,y);/輸出結(jié)果到文本文件/ fclose(r); f
10、close(w);system("pause");return 0; (2)反算# include ""# include ""# include ""# include ""#define pi (4*atan(1.0)double X,Y,B1,B2,B3,F,t;double m0,m2,m4,m6,m8;double a0,a2,a4,a6,a8,a1,b1;double BB,LL,Bf; double e,e1;int d,m,s,i,zuobiao;double sort(doub
11、le,double);struct jin double x; double y; double L0;struct jin g100;/x,y,L0為輸入量:x,y坐標(biāo)和中央子午線經(jīng)度/ main(int argc, double *argv)FILE *r=fopen("c.txt","r"); assert(r!=NULL);FILE *w=fopen("d.txt","w"); assert(r!=NULL);int i=0;while(fscanf(r,"%lf %lf %lf",&a
12、mp;gi.x,&gi.y,&gi.L0)!=EOF)/文件為空,無法打開/ double a1=6378245.0000000000;/克拉索夫斯基橢球參數(shù)/ double b1=6356863.0187730473; double a75=6378140.0000000000;/1975國(guó)際橢球參數(shù)/ double b75=6356755.2881575287; double a84=6378137.0000000000;/WGS-84系橢球參數(shù)/ double b84=6356752.3142000000; double M,N;/mouyou圈曲率半徑,子午圈曲率半徑/
13、 double t,n; double A,B,C; double BB,LL,Bf,LL0,BB0; double a,b; printf("n選擇參考橢球:1=克拉索夫斯基橢球,2=1975國(guó)際橢球,3=WGS-84系橢球:"); scanf("%d",&zuobiao); getchar(); if(zuobiao=1) a=a1; b=b1; if(zuobiao=2) a=a75; b=b75; if(zuobiao=3) a=a84; b=b84; /選擇參考橢球,求解第一偏心率e,第二偏心率e1/ Bf=sort(a,b); /調(diào)用
14、求解底點(diǎn)緯度的函數(shù)/ double q=sqrt(1-e*e*sin(Bf)*sin(Bf); double G=cos(Bf); M=a*(1-e*e)/(q*q*q); N=a/q; double H,I; A=gi.y/N; H=A*A*A; I=A*A*A*A*A; t=tan(Bf); n=e1*cos(Bf); B=t*t; C=n*n; BB0=Bf-gi.y*t*A/(2*M)+gi.y*t*H/(24*M)*(5+3*B+C-9*B*C)-gi.y*t*I/(720*M)*(61+90*B+45*B*B); LL0=gi.L0*pi/180.0+A/G-H/(6*G)*(1.
15、0+2*B+C)+I/(120*G)*(5.0+28*B+24*B*B+6*C+8*B*C);/利用公式求解經(jīng)緯度/int Bdu,Bfen,Ldu,Lfen;double Bmiao,Lmiao;Ldu=int(LL0/pi*180);Lfen=int(LL0/pi*180)*60-Ldu*60);Lmiao=LL0/pi*180*3600-Ldu*3600-Lfen*60;Bdu=int(BB0/pi*180);Bfen=int(BB0/pi*180)*60-Bdu*60);Bmiao=BB0/pi*180*3600-Bdu*3600-Bfen*60; /將弧度轉(zhuǎn)化為角度/ printf(
16、"n所選坐標(biāo)系的轉(zhuǎn)換結(jié)果:%d度%d分%lf秒 %d度%d分%lf秒 n",Bdu,Bfen,Bmiao,Ldu,Lfen,Lmiao); fprintf(w,"%d°%d%lf”%d°%d%lf”n",Bdu,Bfen,Bmiao,Ldu,Lfen,Lmiao);/將結(jié)果輸出到文本文件/ fclose(r); fclose(w);system("pause");return 0; double sort(double a,double b) double e,e1; e=sqrt(1-(b/a)*(b/a); e1=sqrt(a/b)*(a/b)-1); double m0,m2,m4,m6,m8; double a0,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+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年一年級(jí)下學(xué)期數(shù)學(xué)《總復(fù)習(xí)》(教案)
- 六年級(jí)下冊(cè)數(shù)學(xué)教案-1.4 求比一個(gè)數(shù)多(少)百分之幾的數(shù)是多少 青島版
- 六年級(jí)上冊(cè)數(shù)學(xué)教案-2.2 圓的周長(zhǎng) ︳西師大版
- 學(xué)習(xí)2025年雷鋒精神六十二周年主題活動(dòng)實(shí)施方案 (3份)-66
- 數(shù)學(xué)-云南省師范大學(xué)附屬中學(xué)2025屆高三下學(xué)期開學(xué)考試試題和答案
- 2025年度東莞市入學(xué)積分制社區(qū)教育志愿者服務(wù)協(xié)議
- 2025年度交通事故人傷私了協(xié)議(賠償期限與方式)
- 二零二五年度醫(yī)療機(jī)構(gòu)與康復(fù)醫(yī)院醫(yī)生合作合同
- 2025年度安保服務(wù)滿意度調(diào)查合同范本
- 二零二五年度白酒品牌授權(quán)區(qū)域代理及市場(chǎng)拓展合同
- 《紡織服裝材料》課件-0緒論
- 盤扣式卸料平臺(tái)施工方案
- 繪本故事在小學(xué)道德與法治課堂中的有效教學(xué)策略分析
- JB-T 14426-2023 往復(fù)式氣液混輸泵裝置
- 2024核桃樹承包合同
- 保險(xiǎn)授權(quán)書格式模板
- (完整版)數(shù)字電子技術(shù)基礎(chǔ)教案
- 小回溝礦井3.0Mt-a新建工程變更項(xiàng)目環(huán)評(píng)
- 胃癌影像診斷(共42張)
- 汽車維修合同管理制度
- 劍橋KET詞匯表(中英對(duì)照)
評(píng)論
0/150
提交評(píng)論