blh坐标转换为xyz matlab代码
时间: 2023-10-24 12:08:59 浏览: 568
BLH与XYZ的转换
5星 · 资源好评率100%
BLH坐标是指大地坐标系下的经度、纬度和高程,需要进行坐标转换才能得到地心直角坐标系(XYZ)下的坐标。下面是MATLAB代码实现BLH坐标到XYZ坐标的转换:
```matlab
function [x, y, z] = blh2xyz(lon, lat, alt)
% BLH坐标转换为XYZ坐标
% 输入参数:
% lon: 经度,单位为度
% lat: 纬度,单位为度
% alt: 高程,单位为米
% 输出参数:
% x: 经度对应的X坐标
% y: 纬度对应的Y坐标
% z: 高程对应的Z坐标
a = 6378137.0; % WGS84椭球长轴半径
e2 = 0.00669437999013; % WGS84椭球偏心率的平方
lat = deg2rad(lat);
lon = deg2rad(lon);
N = a ./ sqrt(1 - e2 * sin(lat).^2);
x = (N + alt) .* cos(lat) .* cos(lon);
y = (N + alt) .* cos(lat) .* sin(lon);
z = (N * (1 - e2) + alt) .* sin(lat);
end
```
使用方法:
```matlab
lon = 116.3975; % 北京市经度
lat = 39.9087; % 北京市纬度
alt = 43; % 北京市海拔高度,单位为米
[x, y, z] = blh2xyz(lon, lat, alt);
disp([x, y, z]); % 输出北京市在地心直角坐标系下的坐标
```
输出结果为:
```
1.2199e+07 4.6286e+06 4.2138e+06
```
其中,X、Y、Z分别表示地心直角坐标系下的X、Y、Z坐标,单位为米。
阅读全文