码迷,mamicode.com
首页 > 其他好文 > 详细

GPS坐标 转 ECEF地球坐标

时间:2017-01-16 14:36:56      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:gps ecef

#include "stdafx.h"

#include <math.h>


#define  PI 3.14159

/*

该程序主要是实现从GPS坐标转换为地球的三维坐标的函数

*/


void GPS2ECEF(double latitude, double longitude, double height, double &X, double &Y, double &Z)

{

  double a = 6378137;

  double b = 6356752.314245;

  double E = (a*a - b*b)/(a*a);


  double COSLAT = cos(latitude*PI/180);

  double SINLAT = sin(latitude*PI/180);

  double COSLONG = cos(longitude*PI/180);

  double SINLONG = sin(longitude*PI/180);


  double N = a /(sqrt(1 - E*SINLAT*SINLAT));

  double NH = N + height;


  X = NH * COSLAT * COSLONG;

  Y = NH * COSLAT * SINLONG;

  Z = (b*b*N/(a*a) + height) * SINLAT;

}


int _tmain(int argc, _TCHAR* argv[])

{

  double latitude = 22.4331034196;

  double longitude = 113.3957986107;

  double h = 23.3;

  double XX = 0.0;

  double YY = 0.0;

  double ZZ = 0.0;

  GPS2ECEF(latitude, longitude, h, XX, YY, ZZ);

return 0;

}


GPS坐标 转 ECEF地球坐标

标签:gps ecef

原文地址:http://fengyuzaitu.blog.51cto.com/5218690/1892212

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!