function [lat0, lon0, h0]=ecef_to_geodetic(x, y, z)
% # Convert from ECEF cartesian coordinates to
% # latitude, longitude and height. WGS-84
a = 6378137;
b = 6356752.3142;
f = (a - b) / a;
e_sq = f * (2-f);
pi = 3.14159265359;
x2 = x .^ 2 ;
y2 = y .^ 2 ;
z2 = z .^ 2 ;
a = 6378137.0000; %earth radius in meters
b = 6356752.3142 ; %earth semiminor in meters
e = sqrt (1-(b/a)^2);
b2 = b*b ;
e2 = e ^ 2;
ep = e*(a/b);
r = sqrt(x2+y2);
r2 = r.*r ;
E2 = a ^ 2 - b ^ 2;
F = 54.*b2.*z2 ;
G = r2 + (1-e2).*z2 - e2*E2 ;
c = (e2.*e2.*F.*r2)./(G.*G.*G) ;
s = ( 1 + c + sqrt(c.*c + 2.*c) ).^(1/3) ;
P = F ./ (3 .* (s+1./s+1).^2 .* G.*G) ;
Q = sqrt(1+2.*e2.*e2.*P) ;
ro = -(P.*e2.*r)./(1+Q) + sqrt((a*a/2).*(1+1./Q) - (P.*(1-e2).*z2)./(Q.*(1+Q)) - P.*r2/2);
tmp = (r - e2.*ro) .^ 2 ;
U = sqrt( tmp + z2 ) ;
V = sqrt( tmp + (1-e2).*z2 ) ;
zo = (b2.*z)./(a.*V) ;
height = U.*( 1 - b2./(a.*V) );
lat = atan( (z + ep.*ep.*zo)./r ) ;
temp = atan(y./x) ;
if x >=0
long = temp ;
else
if (x < 0) & (y >= 0)
long = pi + temp ;
else
long = temp - pi ;
end
end
lat0 = lat./(pi/180) ;
lon0 = long./(pi/180) ;
h0 = height ;
enu转wgs_matlab_matlab中enu转换_经纬_ENU坐标_经纬度_ENU转wgs坐标
版权申诉
5星 · 超过95%的资源 155 浏览量
2021-09-11
13:25:25
上传
评论
收藏 2KB RAR 举报
心梓
- 粉丝: 807
- 资源: 8057
最新资源
- AIS2024 valid
- 最入门的爬虫代码 python.docx
- 爬虫零基础入门-爬取天气预报.pdf
- 最通俗易懂的 MongoDB 非结构化文档存储数据库教程.zip
- 以mongodb为数据库的订单物流小项目.zip
- 腾讯云-mongodb数据库, 项目部署.zip
- 腾讯 APIJSON 的 MongoDB 数据库插件.zip
- 理解非关系型数据库和关系型数据库的区别.zip
- 操作简单的Mongodb网页web管理工具,基于Spring Boot2.0支持mongodb集群.zip
- tms-mongodb-web,提供访问mongodb数据的REST API和可灵活扩展的mongodb web 客户端.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页