高斯投影正反算公式

上传人:mg****85 文档编号:34243508 上传时间:2018-02-22 格式:DOC 页数:9 大小:138KB
返回 下载 相关 举报
高斯投影正反算公式_第1页
第1页 / 共9页
高斯投影正反算公式_第2页
第2页 / 共9页
高斯投影正反算公式_第3页
第3页 / 共9页
高斯投影正反算公式_第4页
第4页 / 共9页
高斯投影正反算公式_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《高斯投影正反算公式》由会员分享,可在线阅读,更多相关《高斯投影正反算公式(9页珍藏版)》请在金锄头文库上搜索。

1、高斯投影坐标正反算一、基本思想:高斯投影正算公式就是由大地坐标(L,B )求解高斯平面坐标( x,y) ,而高斯投影反算公式则是由高斯平面坐标(x,y)求解大地坐标(L,B ) 。二、计算模型:基本椭球参数:椭球长半轴 a椭球扁率 f椭球短半轴: (1)bf椭球第一偏心率 :2abe椭球第二偏心率 :2高斯投影正算公式:此公式换算的精度为 0.001m64256 42322 )861(cosin70 )95(cosiltBN ltBimNlXx 522425 323)818(cos120(slttBltly 其中:角度都为弧度为点的纬度, , 为点的经度, 为中央子午线经度;B0lL0L为子午

2、圈曲率半径, ;N122(1sin)NaeB;tan22coseB18036其中 为子午线弧长:X24024646611sinco()(2)sinsin33aBaaBa 为基本常量,按如下公式计算:02468,a2468246868835312731212mmama为基本常量,按如下公式计算:0468,;22222046486379();5;maemeeme高斯投影反算公式:此公式换算的精度为 0.0001.2224324653252420 596190720coscos86812f ff ffff ffffffffffffffttByttyMNttyyyl tBttNLl 其中:为中央子午线

3、经度。0为底点纬度,也就是当 时的子午线弧长所对应的纬度。按照子午线弧长公式:fBxX,迭代进行计算;68240sinsisinsiaaXBB初始开始时设: 10f以后每次迭代按下式计算: 106824()sinsisinsii if fi iiiif ffffBFaaBB重复迭代至 为止。1iiffB;122(sin)f fNae31f fM;taffB22cosffe海福特椭球(1910)我国 52 年以前基准椭球a=6378388m b=6356911.9461279m =0.33670033670克拉索夫斯基椭球(1940 Krassovsky) 北京 54 坐标系基准椭球a=6378

4、245m b=6356863.018773m =0.335232986921975 年 I.U.G.G 推荐椭球( 国际大地测量协会 1975) 西安 80 坐标系基准椭球a=6378140m b=6356755.2881575m =0.0033528131778WGS-84 椭球 (GPS 全球定位系统椭球、17 届国际大地测量协会) WGS-84 GPS 基准椭球a=6378137m b=6356752.3142451m =0.00335281006247三、程序代码函数:/*高斯投影正算函数*输入 : double a ,f 椭球参数,B,L为大地坐标,L0为中央子午线的经度,单位为弧度

5、,x,y为高斯平面坐标,y加上了500000常量返回:none*/void gaosiforward(double a,double f,double B,double L,double L0,double &x,double &y)double b, c,e1, e2; /短半轴,极点处的子午线曲率半径,第一偏心率,第二偏心率double l, W,N, M, daihao;/W为常用辅助函数,N为子午圈曲率半径,M为卯酉圈曲率半径double X;/子午线弧长,高斯投影的坐标double ruo, ita, sb, cb,t;double m5,n5;/计算一些基本常量b=a*(1-f);

6、e1=sqrt(a*a-b*b)/a;e2=sqrt(a*a-b*b)/b;c=a*a/b;m0=a*(1-e1*e1);m1=3*(e1*e1*m0)/2.0;m2=5*(e1*e1*m1)/4.0;m3=7*(e1*e1*m2)/6.0;m4=9*(e1*e1*m3)/8.0;n0=m0+m1/2+3*m2/8+5*m3/16+35*m4/128;n1=m1/2+m2/2+15*m3/32+7*m4/16;n2=m2/8+3*m3/16+7*m4/32;n3=m3/32+m4/16;n4=m4/128; /by kjh 2014.5.22 把改成了/由纬度计算子午线弧长X=n0*B-sin

7、(B)*cos(B)*(n1-n2+n3)+(2*n2-(16*n3/3.0)*sin(B)*sin(B)+16*n3*pow(sin(B),4)/3.0);l=L-L0;/弧度ita=e2*cos(B);sb=sin(B);cb=cos(B);W=sqrt(1-e1*e1*sb*sb);N=a/W;t=tan(B);ruo=(180/Pi)*3600;x=(X+N*sb*cb*l*l/2+N*sb*cb*cb*cb*(5-t*t+9*ita*ita+4*ita*ita*ita*ita)*l*l*l*l/24+N*sb*cb*cb*cb*cb*cb*(61-58*t*t+t*t*t*t)*l*

8、l*l*l*l*l/720);y=(N*cb*l+N*cb*cb*cb*(1-t*t+ita*ita)*l*l*l/6+N*cb*cb*cb*cb*cb*(5-18*t*t+t*t*t*t+14*ita*ita-58*ita*ita*t*t)*l*l*l*l*l/120);y=y+500000;/*高斯反算函数*输入 : double a ,f 椭球参数, x,y为高斯平面坐标,L0为中央子午线的经度; B,L为大地坐标,单位为弧度*返回:none*/void gaosibackward(double a,double f,double x,double y,double L0,double

9、&B,double &L)double b, c,e1, e2; /短半轴,极点处的子午线曲率半径,第一偏心率,第二偏心率double Bf,itaf,tf,Nf,Mf,Wf;double l;double m5,n5;y=y-500000;/计算一些基本常量b=a*(1-f);e1=sqrt(a*a-b*b)/a;e2=sqrt(a*a-b*b)/b;c=a*a/b;m0=a*(1-e1*e1);m1=3*(e1*e1*m0)/2.0;m2=5*(e1*e1*m1)/4.0;m3=7*(e1*e1*m2)/6.0;m4=9*(e1*e1*m3)/8.0;n0=m0+m1/2+3*m2/8+5

10、*m3/16+35*m4/128;n1=m1/2+m2/2+15*m3/32+7*m4/16;n2=m2/8+3*m3/16+7*m4/32;n3=m3/32+m4/16;n4=m4/128;/计算Bfdouble Bf1,Bfi0,Bfi1,FBfi;Bf1=x/n0;Bfi0=Bf1;Bfi1=0;FBfi=0;int num=0;do num=0;FBfi=0.0-n1*sin(2*Bfi0)/2.0+n2*sin(4*Bfi0)/4.0-n3*sin(6*Bfi0)/6.0;Bfi1=(x-FBfi)/n0;if (fabs(Bfi1-Bfi0)(Pi*pow(10.0,-8)/(36

11、*18)num=1;Bfi0=Bfi1; while (num=1);Bf=Bfi1;tf=tan(Bf);Wf=sqrt(1-e1*e1*sin(Bf)*sin(Bf);Nf=a/Wf;Mf=a*(1-e1*e1)/(Wf*Wf*Wf);itaf=e2*cos(Bf);B=Bf-tf*y*y/(2*Mf*Nf)+tf*(5+3*tf*tf+itaf*itaf-9*itaf*itaf*tf*tf)*pow(y,4)/(24*Mf*pow(Nf,3)-tf*(61+90*tf*tf+45*pow(tf,4)*pow(y,6)/(720*Mf*pow(Nf,5);l=y/(Nf*cos(Bf)-(

12、1+2*tf*tf+itaf*itaf)*pow(y,3)/(6*pow(Nf,3)*cos(Bf)+(5+28*tf*tf+24*pow(tf,4)+6*itaf*itaf+8*itaf*itaf*tf*tf)*pow(y,5)/(120*pow(Nf,5)*cos(Bf);L=l+L0;2014-5-22 输入: double a ,f 椭球参数,B,L为大地坐标,L0为中央子午线的经度,单位为弧度,x,y为高斯平面坐标,y加上了常量Private Function gaosiforward(ByVal a As Double, ByVal f As Double, ByVal B As

13、Double, ByVal L As Double, ByVal L0 As Double) As Double()Dim x, y, xy(2) As DoubleDim bb, c, e1, e2 As Double 短半轴,极点处的子午线曲率半径,第一偏心率,第二偏心率Dim ll, W, N, M, daihao As Double W为常用辅助函数,N为子午圈曲率半径,M为卯酉圈曲率半径Dim xx As Double 子午线弧长,高斯投影的坐标Dim ruo, ita, sb, cb, t As DoubleDim mm(5), nn(5) As Doublebb = a * (1

14、 - f)e1 = Math.Sqrt(a * a - bb * bb) / ae2 = Math.Sqrt(a * a - bb * bb) / bbc = a * a / bbmm(0) = a * (1 - e1 * e1)mm(1) = 3 * (e1 * e1 * mm(0) / 2.0mm(2) = 5 * (e1 * e1 * mm(1) / 4.0mm(3) = 7 * (e1 * e1 * mm(2) / 6.0mm(4) = 9 * (e1 * e1 * mm(3) / 8.0nn(0) = mm(0) + mm(1) / 2 + 3 * mm(2) / 8 + 5 * mm(3) / 16 + 35 * mm(4) / 128nn(1) = mm(1) / 2 + mm(2) / 2 + 15 * mm(3) / 32 + 7 * mm(4) / 16nn(2) = mm(2) / 8 + 3 * mm(3) / 16 + 7 * mm(4) / 32nn(3) = mm(3) / 32 + mm(4) / 16nn(4) = mm(4) / 128xx = nn(0) * B - Sin(B) * Cos(B) * (nn(1) - nn(2) + nn(3) + (2 * nn(2) - (16 * nn(3) / 3.0) * Si

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号