下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、坐标转换源代码-GPS定位程序(C+) GPS数据处理中为了满足不同的需要,处理的数据要进行坐标转换,得到在不同坐标系统下的结果,下面是笛卡尔坐标系,大地坐标系,站心地平坐标系(线型和极坐标形式)之间的转换源代码:头文件:#ifndef _COORDCOVERT_H#define _COORDCOVERT_H#include stdlib.h/WGS-84椭球体参数const double a=.0;/长半轴const double flattening=1/298.;/扁率const double delta=0.;typedef struct tagCRDCARTESIANdouble x
2、;double y;double z;CRDCARTESIAN;typedef CRDCARTESIAN *PCRDCARTESIAN;/笛卡尔坐标系typedef struct tagCRDGEODETICdouble longitude;double latitude;double height;CRDGEODETIC;typedef CRDGEODETIC *PCRDGEODETIC;/大地坐标系typedef struct tagCRDTOPOCENTRICdouble northing;double easting;double upping;CRDTOPOCENTRIC;typed
3、ef CRDTOPOCENTRIC *PCRDTOPOCENTRIC;/站心地平坐标系(线坐标形式)typedef struct tagCRDTOPOCENTRICPOLARdouble range;double azimuth;double elevation;CRDTOPOCENTRICPOLAR;typedef CRDTOPOCENTRICPOLAR *PCRDTOPOCENTRICPOLAR;/站心地平坐标系(极坐标形式)/由笛卡尔坐标转换为大地坐标void CartesianToGeodetic (PCRDGEODETIC pcg, PCRDCARTESIAN pcc,double
4、dSemiMajorAxis, double dFlattening);/pcg:指向所转换出的大地坐标的指针;/pcc:指向待转换的笛卡尔坐标的指针;/dSemiMajorAxis:参考椭球的长半轴;/dFlattening:参考椭球的扁率。/由大地坐标转换为笛卡尔坐标void GeodeticToCartesian (PCRDCARTESIAN pcc, PCRDGEODETIC pcg,double dSemiMajorAxis, double dFlattening);/pcc:指向所转换出的笛卡尔坐标的指针;/pcg:指向待转换的大地坐标的指针;/dSemiMajorAxis:参考椭
5、球的长半轴;/dFlattening:参考椭球的扁率。/由笛卡尔坐标转换为站心地平坐标void CartesianToTopocentric (PCRDTOPOCENTRIC pct,PCRDCARTESIAN pcc,PCRDCARTESIAN pccCenter,double dSemiMajorAxis,double dFlattening);/pct:指向所转换出的站心地平坐标的指针;/pcc:指向待转换的笛卡尔坐标的指针;/pccCenter:指向站心的笛卡尔坐标的指针;/dSemiMajorAxis:参考椭球的长半轴;/dFlattening:参考椭球的扁率。/由站心地平直角坐标转
6、换为站心地平极坐标void TopocentricToTopocentricPolar (PCRDTOPOCENTRICPOLAR pctp,PCRDTOPOCENTRIC pct);/pctp:指向所转换出的站心地平极坐标的指针;/pct:指向待转换的站心地平坐标的指针;/由站心地平极坐标转换为站心地平直角坐标void TopocentricPolarToTopocentric (PCRDTOPOCENTRIC pct,PCRDTOPOCENTRICPOLAR pctp);/pct:指向所转换的站心地平坐标的指针;/pctp:指向待转换的站心地平极坐标的指针;#endif 源文件:#incl
7、ude CoordCovert.h#include math.hvoid CartesianToGeodetic (PCRDGEODETIC pcg, PCRDCARTESIAN pcc,double dSemiMajorAxis, double dFlattening)double e2;/第一偏心率的平方e2=2*dFlattening-dFlattening*dFlattening;pcg-longitude=atan(pcc-y/pcc-x);double W,N,N1=0,B,B1;B1=atan(pcc-z/sqrt(pcc-x*pcc-x+pcc-y*pcc-y);while(1
8、) W=sqrt(1-e2*sin(B1)*sin(B1); N1=dSemiMajorAxis/W; B=atan(pcc-z+N1*e2*sin(B1)/sqrt(pcc-x*pcc-x+pcc-y*pcc-y); if(fabs(B-B1)latitude=B;N=dSemiMajorAxis/sqrt(1-e2*sin(pcg-latitude)*sin(pcg-latitude);pcg-height=sqrt(pcc-x*pcc-x+pcc-y*pcc-y)/cos(B)-N; /由大地坐标转换为笛卡尔坐标void GeodeticToCartesian (PCRDCARTESIA
9、N pcc, PCRDGEODETIC pcg,double dSemiMajorAxis, double dFlattening) double e2;/第一偏心率的平方double N;/卯酉圈半径e2=2*dFlattening-dFlattening*dFlattening;N=dSemiMajorAxis/sqrt(1-e2*sin(pcg-latitude)*sin(pcg-latitude);pcc-x=(N+pcg-height)*cos(pcg-latitude)*cos(pcg-longitude);pcc-y=(N+pcg-height)*cos(pcg-latitude
10、)*sin(pcg-longitude);pcc-z=(N*(1-e2)+pcg-height)*sin(pcg-latitude);/由笛卡尔坐标转换为站心地平坐标void CartesianToTopocentric (PCRDTOPOCENTRIC pct,PCRDCARTESIAN pcc,PCRDCARTESIAN pccCenter,double dSemiMajorAxis,double dFlattening)double dx,dy,dz;dx=pcc-x-pccCenter-x;dy=pcc-y-pccCenter-y;dz=pcc-z-pccCenter-z;PCRDGE
11、ODETIC pd;pd=(PCRDGEODETIC)malloc(sizeof(CRDGEODETIC); CartesianToGeodetic (pd,pccCenter,dSemiMajorAxis,dFlattening);pct-northing=-sin(pd-latitude)*cos(pd-longitude)*dx -sin(pd-latitude)*sin(pd-longitude)*dy +cos(pd-latitude)*dz;pct-easting=-sin(pd-longitude)*dx +cos(pd-longitude)*dy;pct-upping=cos(
12、pd-latitude)*cos(pd-longitude)*dx +cos(pd-latitude)*sin(pd-longitude)*dy +sin(pd-latitude)*dz;free(pd);/由站心地平直角坐标转换为站心地平极坐标void TopocentricToTopocentricPolar (PCRDTOPOCENTRICPOLAR pctp,PCRDTOPOCENTRIC pct) pctp-range=sqrt(pct-northing*pct-northing+pct-easting*pct-easting+pct-upping*pct-upping);pctp-azimuth=atan(pct-easting/pct-northing);pctp-elevation=asin(pct-upping/pctp-range);/由站心地平极坐标转换为站心地平直角坐标void TopocentricPolarToTopocentric (PCRDTOPOCENTRI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于FBG编解码器的跳频时延OCDMA系统噪声特性与优化策略研究
- 基于EMD-灰色马尔科夫模型的电力负荷精准预测研究
- 基于DSP的等离子体加工电源控制系统的创新设计与应用研究
- 基于DSP的永磁同步电机直接转矩控制系统实现与优化研究
- 基于DSP技术的随钻测量泥浆信号处理系统研究与实现
- 基于DEA模型的江西省土地利用效率剖析与提升策略研究
- 四川省南充市蓬安县2025-2026学年四年级数学第二学期期中联考试题(含解析)
- 四川省内江市隆昌县2025-2026学年四下数学期中质量跟踪监视模拟试题(含解析)
- 临洮县2026年数学三下期末教学质量检测试题(含解析)
- 2026年综合岗考试模拟题及答案详解
- 2026年B2驾照科目一考试题库(完整版带答案·真人刷题版)
- 2026秋人教PEP六年级上册英语(新改版)全册教案
- 教师节主题班会:浓浓尊师意拳拳感恩心
- 乐山市文化传媒集团有限公司2026年员工公开招聘考试备考试题及答案详解
- 大学物理(二)智慧树知到期末考试答案章节答案2024年上海电力大学
- NB-T 20580.9-2021 核电厂建设工程概算定额 第9部分:常规岛电气设备安装工程
- 大学生数字素养现状调查
- 美学原理全套教学课件
- 西方法律思想史正式的课件
- 管理信息系统第七讲易飞ERP批次需求计划系统课件
- 3、反渗透法设备安装及调试施工工艺工法
评论
0/150
提交评论