下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、./servey.h/ #ifndef SERVEY_H/ #define SERVEY_H#include #include #include const double PI = 3.149323846;const double epsilon = 0.;/角度(度、分、秒)化弧度(带符号)double angle_to_radian (double alfa) double alfa1,alfa2,fsign,fbeta;if( fabs(alfa) =0)alfa_sign = 1;elsealfa_sign = -1;alfa = fabs(alfa); double alfa1,al
2、fa2;double A = floor(alfa+epsilon);double B = floor(alfa-A)*100+epsilon);alfa1 = A+B/60;alfa2=(alfa*100.-floor(alfa*100.+epsilon)/36.;alfa1+=alfa2;return (alfa_sign*alfa1);/弧度化度分秒double radian_to_angle(double alfa)double alfa_sign; /alfa的正负号if(alfa=0)alfa_sign = 1;elsealfa_sign = -1;alfa = fabs(alfa
3、);double alfa1=alfa*180./PI+epsilon;double alfa2=floor(alfa1+epsilon)+floor(alfa1-floor(alfa1+epsilon)*60+epsilon)/100; double alfa3=(alfa1-angle_to_degree(alfa2)*0.36;alfa2+=alfa3;return (alfa_sign*alfa2);/高斯正算函数/Ellipse为枚举类型/Cent_Meridian为中央子午线经度/x,y为返回的高斯平面坐标int BL_xy(int ellipse, double Cent_Mer
4、idian, double B, double L, double& x, double& y)double a, b, e1, e2; /e1为第一偏心率,e2为第二偏心率 switch (ellipse) /选椭球 case 0 : /54椭球a=6378245.; /长半轴b=6356863.0187730473; /短半轴e1=sqrt(pow(a,2.)-pow(b,2.)/a;e2=sqrt(pow(a,2.)-pow(b,2.)/b;break; case 1 : /80椭球a=6378140.;b=6356755.2881575287;e1=sqrt(pow(a,2)-pow(
5、b,2)/a;e2=sqrt(pow(a,2)-pow(b,2)/b;break;case 2 : /84椭球a=6378137.;b=6356752.3142;e1=sqrt(pow(a,2)-pow(b,2)/a;e2=sqrt(pow(a,2)-pow(b,2)/b;break;default : break; double l=angle_to_degree(L)-angle_to_degree(Cent_Meridian); /l为经差 /角度化弧度B=angle_to_radian(B);L=angle_to_radian(L);l=l*PI/180.;double X0; /X0
6、为当l=0时,从赤道起算的子午线弧长 /计算子午线弧长X的系数double A0=1.0+3.0/4*pow(e1,2.0)+45.0/64*pow(e1,4.0)+350.0/512*pow(e1,6.0)+11025.0/16384*pow(e1,8.0);double A2=-(3.0/4*pow(e1,2.0)+60.0/64*pow(e1,4.0)+525.0/512*pow(e1,6.0)+17640.0/16384*pow(e1,8.0)/2.0;double A4=(15.0/64*pow(e1,4.0)+210.0/512*pow(e1,6.0)+8820.0/16384*p
7、ow(e1,8.0)/4;double A6=-(35.0/512*pow(e1,6.0)+2520.0/16384*pow(e1,8.0)/6;double A8=(315.0/16384.0*pow(e1,8.0)/8; /计算子午线弧长XX0=a*(1.0-pow(e1,2.0)*(A0*B+A2*sin(2*B)+A4*sin(4*B)+A6*sin(6*B)+A8*sin(8*B);double t=tan(B);double anke=e2*cos(B);double N=a/sqrt(1.0-pow(e1,2.0)*pow(sin(B),2.0); /N为投影点的卯酉圈曲率半径/
8、坐标计算x=X0+1.0/2*N*t*pow(cos(B),2.0)*pow(l,2.0)+1.0/24*N*t*(5.0-pow(t,2.0)+9.0*pow(anke,2.0)+4.0*pow(anke,4.0)*pow(cos(B),4.0)*pow(l,4.0)+1.0/720*N*t*(61.0-58.0*pow(t,2.0)+pow(t,4.0)+270*pow(anke,2.0)-330.0*pow(anke,2.0)*pow(t,2.0)*pow(cos(B),6.0)*pow(l,6.0);y=N*cos(B)*l+1.0/6*N*(1-pow(t,2.0)+pow(anke
9、,2.0)*pow(cos(B),3.0)*pow(l,3.0) +1.0/120*N*(5.0-18.0*pow(t,2.0)+pow(t,4.0)+14.0*pow(anke,2.0)-58*pow(anke,2)*pow(t,2)*pow(cos(B),5.0)*pow(l,5.0);y+=500000.0; /add 500kmreturn 0;/高斯反算函数 int xy_BL(int ellipse, double Cent_Meridian, double x, double y, double& B, double& L)double a, b, e1, e2; /e1为第一偏
10、心率,e2为第二偏心率 switch (ellipse) /选椭球 case 0 : /54椭球a=6378245.; /长半轴b=6356863.0187730473; /短半轴e1=sqrt(pow(a,2.)-pow(b,2.)/a;e2=sqrt(pow(a,2.)-pow(b,2.)/b;break; case 1 : /80椭球a=6378140.;b=6356755.2881575287;e1=sqrt(pow(a,2)-pow(b,2)/a;e2=sqrt(pow(a,2)-pow(b,2)/b;break;case 2 : /84椭球a=6378137.;b=6356752.
11、3142;e1=sqrt(pow(a,2)-pow(b,2)/a;e2=sqrt(pow(a,2)-pow(b,2)/b;break;default : break;double Bf; /底点纬度/以下计算Bf的系数B0,K0,K2,K4,K6double E=e1*e1;double A0=1.0+3./4*E+45./64*E*E+350./512*E*E*E+11025./16384*E*E*E*E +43659./65536*E*E*E*E*E;double B0=x/(a*(1-E)*A0);double K0=(3./4*E+45./64*E*E+350./512*E*E*E+1
12、1025./16384*pow(e1,8.)/2;double K2=-(63./64*E*E+1108./512*pow(e1,6.)+58239./16384*pow(e1,8.)/3;double K4=(604./512*E*E*E+68484./16384*E*E*E*E)/3;double K6=-(26328./16384*pow(e1,8)/3; double si=sin(B0)*sin(B0);Bf=B0+sin(2.*B0)*(K0+si*(K2+si*(K4+K6*si);double tf=tan(Bf);double ankef=e2*cos(Bf);/double
13、 Nf=a/sqrt(1.0-E*pow(sin(Bf),2.0);double c=a/sqrt(1-E);double Vf=sqrt(1+ankef*ankef); double Nf=c/Vf;double Mf=a*(1.-E)/pow(1.-E*sin(Bf),1.5);y=y-500000.; double T=tf*tf, an=ankef*ankef, y2=y*y, MN=Mf*Nf; /B=Bf-tf*y2/(2*MN)+tf*(5.+3.*T+an-9.*an*T)*y2*y2/(24.*MN*Nf*Nf)/-tf*(61.+90*T+45.*T*T)*pow(y2,3.)/(720.*Mf*pow(Nf,5.);/另一种计算B的算法double q=y/Nf;B=Bf-pow(Vf,2.0)*tf*(1.0+(-(5+3.0*T+an*(1-9.0*T)+(61+45.0*T*(2+T)*pow(q,2.0)/30.0)*pow(q,2.0)/12.0)*pow(q,2.0)/2.0; double
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 13207-2025菠萝罐头质量通则
- 2025年上海市复旦大学智能医学研究院招聘周欣课题组行政助理岗位备考题库及参考答案详解一套
- 2025年中国邮政储蓄银行苏州市分行信用卡直销团队招聘备考题库及参考答案详解一套
- 2025年威海市检察机关公开招聘聘用制书记员31人备考题库带答案详解
- 2025年北京协和医院基本外科合同制科研助理招聘备考题库及答案详解1套
- 2026年医院组织结构调整合同
- 2026年采空区合同
- 2025国家公务员国家税务总局孝昌县税务局面试试题及答案
- 2025年钦州市灵山生态环境局关于向社会公开招聘工作人员的备考题库及答案详解1套
- 2025年张家港市南丰镇人民医院自主招聘编外合同制卫技人员备考题库及答案详解一套
- 2025天津大学管理岗位集中招聘15人笔试备考重点题库及答案解析
- 2026年人教版(2024)初中美术七年级上册期末综合测试卷及答案(四套)
- 供应饭菜应急预案(3篇)
- 2026年辽宁理工职业大学单招职业适应性测试题库及参考答案详解
- 2026苏州大学附属第二医院(核工业总医院)护理人员招聘100人(公共基础知识)测试题带答案解析
- 2026中国储备粮管理集团有限公司湖北分公司招聘33人笔试历年题库及答案解析(夺冠)
- 《马原》期末复习资料
- 食品生产企业GMP培训大纲
- 《图形创意与应用》全套教学课件
- 科研成果评审专家意见模板
- 工程教育国际化路径-洞察及研究
评论
0/150
提交评论