WGS84坐标系下大地坐标转换为空间直角坐标

大地坐标表示方法:BLH
空间直角坐标表示方法:XYZ

进行地图投影的一般操作步骤为先将BLH转换为XYZ,然后将XYZ通过三参数或者7参数的办法转换为xyz,涉及到两个椭球体以及坐标系之间的转换,本文主要讨论BLH转换为XYZ的办法,通过C#程序实现。

WGS84坐标系的参数:
已知量:a,f 可以求解出b与e
长半轴:a=6378137
WGS84椭球扁率:f=1/298.257223563
椭球扁率f=(a-b)/a
椭球第一偏心率:e*e=(a*a-b*b)/a*a

BLH转XYZ的公式如下:
这里写图片描述
WGS84椭球体的参数如下:
这里写图片描述
C#程序实现核心代码:

  f = 1 / 298.257223563;
  b = a * (1 - f);
  e = Math.Sqrt(a * a - b * b) / a;
  N = a / Math.Sqrt(1 - e * e * Math.Sin(lat * Math.PI / 180) * Math.Sin(lat * Math.PI / 180));
  WGS84_X = (N + H1) * Math.Cos(lat * Math.PI / 180) * Math.Cos(lon * Math.PI / 180);
  WGS84_Y = (N + H1) * Math.Cos(lat * Math.PI / 180) * Math.Sin(lon * Math.PI / 180);
  WGS84_Z = (N * (1 - (e * e)) + H1) * Math.Sin(lat * Math.PI / 180);





你可能感兴趣的:(技术文档)