21 lines
714 B
Matlab
21 lines
714 B
Matlab
|
%% WGS84直角坐标系转经纬度
|
|||
|
% 东经正数,西经为负数
|
|||
|
% 北纬为正数,南纬为负数
|
|||
|
% 输入参数1:纬度;输入参数2:经度;输入参数3:高度
|
|||
|
% 经纬度单位:度;高度单位:米
|
|||
|
function [latitude,longitude,height]=XYZ2LLA(x,y,z)
|
|||
|
|
|||
|
a = 6378137.0;
|
|||
|
b = 6356752.31424518;
|
|||
|
c = sqrt(((a * a) - (b * b)) / (a * a));
|
|||
|
d = sqrt(((a * a) - (b * b)) / (b * b));
|
|||
|
p = sqrt((x * x) + (y * y));
|
|||
|
q = atan((z * a)/ (p * b));
|
|||
|
longitude = atan(y/x);
|
|||
|
latitude = atan((z + (d * d) * b * sin(q)^3)/(p - (c * c) * a * cos(q)^3));
|
|||
|
N = a / sqrt(1 - ((c * c) * sin(latitude)^2));
|
|||
|
height = (p / cos(latitude)) - N;
|
|||
|
longitude = longitude * 180.0 / pi+180;
|
|||
|
latitude = latitude * 180.0 / pi;
|
|||
|
end
|
|||
|
|