基于matlab的空间大地坐标系与空间直角坐标系互换
为了达到空间大地坐标系与空间直角坐标系互换的问题matlab界面设计如下:
分两步分设两个pushbutton进行: 1.BHL→XYZ 22由 222222 e?(a?b)/a
?X??(N?H)cosBcosL?
aa???? N?X??Y???(N?H)cosBsinL??
?Z??((1?e2)N?H)sinB?1?e2sin2B1?f(2?f)sin2B ????
将BHL的值由edittext传入到表达式中,经计算再由edittext传出。
2.XYZ→BHL
f?(a?b)/ae?2f?f1?e?(1?f)∵ X2?Y2H??N cosB
Z B?arctan X2?Y2
YL?arctan
X
又由于
22
由此B由迭代而来。 具体方法为::
N??2?1?e?N?H???1N?a1?esinB?a1?f(2?f)sin2B
由此进行迭代,得到正确的B即可。 补充说明:
1.为了使其在各个空间直角坐标系间转换,设立了
单选按钮,可实现多种坐标系的转换。
2.在转换过程中需要注意度分秒的转换,及matlab中度分秒的表达形式。 具体实现过程: 度=度+分/60+秒/3600
(即最后实现的BHL的输入给函数的值,以便输出XYZ) 程序运行:
1.BHL→XYZ