本文主要是介绍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);
这篇关于WGS84坐标系下大地坐标转换为空间直角坐标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!