经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc

经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc

ID:55642014

大小:32.00 KB

页数:9页

时间:2020-05-22

经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第1页
经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第2页
经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第3页
经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第4页
经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第5页
经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第6页
经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第7页
经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第8页
经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc_第9页
资源描述:

《经纬度BL算到高斯平面直角坐标XY(高斯投影正算)的源.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、经纬度BL换算到高斯平面直角坐标XY(高斯投影正算)的源码及算法收藏新一篇:C#的6种常用集合类大比拼

2、旧一篇:Silverlight中使用图片及常见问题一、经纬度BL换算到高斯平面直角坐标XY(高斯投影正算)的源码及算法//GaussBL2xy.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"math.h"#include"CoorTrans.h"#includeusingnamespacestd;voidmain(intargc,char*argv[]){doub

3、leMyL0=108;//中央子午线doubleMyB=33.44556666;//33du44fen55.6666miaodoubleMyL=109.22334444;//3度带,109d22m33.4444sPrjPoint_KrasovskyMyPrj;MyPrj.SetL0(MyL0);MyPrj.SetBL(MyB,MyL);doubleOutMyX;//结果应该大致是:3736714.783,627497.303doubleOutMyY;OutMyX=MyPrj.x;//正算结果:北坐标xOutMyY=MyPrj.y;//结果:东坐标y//////////////////反算///

4、/////////////////////////////////////doubleInputMyX=3736714.783;//如果是独立计算,应该给出中央子午线L0doubleInputMyY=627497.303;MyPrj.Setxy(InputMyX,InputMyY);MyPrj.GetBL(&MyPrj.B,&MyPrj.L);//把计算出的BL的弧度值换算为dms形式doubleOutputMyB;doubleOutputMyL;OutputMyB=MyPrj.B;//反算结果:BOutputMyL=MyPrj.L;//反算结果:L//分析表明,此程序的结果和Coord4.2

5、的转换结果是一样的,只差到毫米级//原程序有几个问题,1.Pi的值不对。2.SetBL中多了两行错误代码}doubleDms2Rad(doubleDms){doubleDegree,Miniute;doubleSecond;intSign;doubleRad;if(Dms>=0)Sign=1;elseSign=-1;Dms=fabs(Dms);Degree=floor(Dms);Miniute=floor(fmod(Dms*100.0,100.0));Second=fmod(Dms*10000.0,100.0);Rad=Sign*(Degree+Miniute/60.0+Second/3600

6、.0)*PI/180.0;returnRad;}doubleRad2Dms(doubleRad){doubleDegree,Miniute;doubleSecond;intSign;doubleDms;if(Rad>=0)Sign=1;elseSign=-1;Rad=fabs(Rad*180.0/PI);Degree=floor(Rad);Miniute=floor(fmod(Rad*60.0,60.0));Second=fmod(Rad*3600.0,60.0);Dms=Sign*(Degree+Miniute/100.0+Second/10000.0);returnDms;}///////

7、//////////////////////////////////////////////DefinitionofPrjPoint///////////////////////////////////////////////////boolPrjPoint::BL2xy(){doubleX,N,t,t2,m,m2,ng2;doublesinB,cosB;X=A1*B*180.0/PI+A2*sin(2*B)+A3*sin(4*B)+A4*sin(6*B);sinB=sin(B);cosB=cos(B);t=tan(B);t2=t*t;N=a/sqrt(1-e2*sinB*sinB);m=co

8、sB*(L-L0);m2=m*m;ng2=cosB*cosB*e2/(1-e2);//x,y的计算公式见孔祥元等主编武汉大学出版社2002年出版的《控制测量学》的第72页//书的的括号有问题,(和[应该交换x=X+N*t*((0.5+((5-t2+9*ng2+4*ng2*ng2)/24.0+(61-58*t2+t2*t2)*m2/720.0)*m2)*m2);y=N*m*(1+m2*((1-t2+

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

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

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