⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dadi_zhijiao.m

📁 自己写的大地坐标系(WGS84,BJ54,GDZ80)到直角坐标系的转换程序
💻 M
字号:
function [XYZ]=dadi_zhijiao(BLH,type)    % 大地系(经纬高)---直角系(XYZ)

%  dadi_zhijiao将大地坐标系(degree, WGS,BJ54 ,GDZ80)(经纬高)转换为直角坐标系(XYZ)
%  BLH(1:n,1:3) 为经纬高 (degree, WGS,BJ54 ,GDZ80)--------XYZ 
%  B 纬度,L 经度,H  高度
% type = 'WGS' or 'BJ54' or 'GDZ80' 


n = size(BLH,1);
BLH(1:n,1) = BLH(1:n,1).*pi/180;   % 纬度从°转换为弧度
BLH(1:n,2) = BLH(1:n,2).*pi/180;
XYZ(1:n,1:3)=0;

if strcmp(type,'WGS')                                 % 如果是输入WGS-84的经纬高值
   a_WGS = 6378137;  alpha_WGS = 1/298.257223563;    % alpha为扁率,e2是偏心率的平方,
   e2_WGS = 2*alpha_WGS-alpha_WGS^2;
   N_WGS = a_WGS./sqrt(1-e2_WGS.*sin(BLH(1:n,1)).^2);          % N为卯酉圈的曲率半径
   
   XYZ(1:n,1) = (N_WGS+BLH(1:n,3)).*cos(BLH(1:n,1)).*cos(BLH(1:n,2)) ;
   XYZ(1:n,2) = (N_WGS+BLH(1:n,3)).*cos(BLH(1:n,1)).*sin(BLH(1:n,2));
   XYZ(1:n,3) = [N_WGS.*(1-e2_WGS)+BLH(1:n,3)].*sin(BLH(1:n,1));
   
elseif strcmp(type,'BJ54')                        % 如果是输入BJ54的经纬高值
        a_BJ54 = 6378245; alpha_BJ54 = 1/298.3 ;
       e2_BJ54 = 2*alpha_BJ54-alpha_BJ54^2;   
        N_BJ54 = a_BJ54./sqrt(1-e2_BJ54.*sin(BLH(1:n,1)).^2);   %  N_BJ54为卯酉圈的曲率半径
        
     XYZ(1:n,1) = (N_BJ54+BLH(1:n,3)).*cos(BLH(1:n,1)).*cos(BLH(1:n,2)) ;
     XYZ(1:n,2) = (N_BJ54+BLH(1:n,3)).*cos(BLH(1:n,1)).*sin(BLH(1:n,2));
     XYZ(1:n,3) = [N_BJ54.*(1-e2_BJ54)+BLH(1:n,3)].*sin(BLH(1:n,1));
       
else strcmp(type,'GDZ80')                        
        a_GDZ80 = 6378140;  alpha_GDZ80 = 1/298.257;
        e2_GDZ80 = 2*alpha_GDZ80-alpha_GDZ80^2;
        N_GDZ80 = a_GDZ80./sqrt(1-e2_GDZ80.*sin(BLH(1:n,1)).^2);   %  N_GDZ80为卯酉圈的曲率半径
        
        
        XYZ(1:n,1) = (N_GDZ80+BLH(1:n,3)).*cos(BLH(1:n,1)).*cos(BLH(1:n,2)) ;
        XYZ(1:n,2) = (N_GDZ80+BLH(1:n,3)).*cos(BLH(1:n,1)).*sin(BLH(1:n,2));
        XYZ(1:n,3) = [N_GDZ80.*(1-e2_GDZ80)+BLH(1:n,3)].*sin(BLH(1:n,1));
        

     
end



% %%%%%%%%%%%%%%%%%%%%%%%%%%*** last line of dadi_zhijiao.m ***%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%  BLH = [0 0 0;1 2 3];type = 'WGS',XYZ=dadi_zhijiao(BLH,type)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -