while(fscanf(r,\{
doublea,b;
intzuobiao;
printf(\请输入坐标系:北京54=1,西安80=2,WGS84=3:\ scanf(\ 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;
} //选择坐标系//
double f=(a-b)/a;
double e,e2; e=sqrt(2*f-f*f);
e2=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+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[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*100))*100.0; doubledb;
db=pi/180.0/3600.0; double B1,L1,l; B1=Bmiao*db; L1= Lmiao*db;
l=L1-L0miao*db;//角度转化为弧度// double T=tan(B1)*tan(B1);
double n=e2*e2*cos(B1)*cos(B1); double A=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;//求弧长//
double N=a/sqrt(1-e*e*sin(B1)*sin(B1));
intZonewide;
intZonenumber;
printf(\请输入带宽:3度带或6度带Zonewide=\
scanf(\getchar();
if(Zonewide==3) {
Zonenumber=(int)((g[i].L-Zonewide/2)/Zonewide+1); }
else if(Zonewide==6) {
Zonenumber=(int)g[i].L/Zonewide+1; } else {
printf(\错误\
exit(0);
}//选择带宽// double
FE=Zonenumber*1000000+500000;//改写为国家通用坐
标//
y=FE+N*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;
fclose(r);
printf(\所选坐标系的转换结果:x=%lf y=%lf\\n\ }
fprintf(w,\输出结果到文本文件//
fclose(w); }
(2)反算 # include \# include \# include \system(\return 0;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库高斯投影正反算编程(2)在线全文阅读。
相关推荐: