gpt4 book ai didi

gps - 经度、纬度、高度到 3D-笛卡尔坐标系

转载 作者:行者123 更新时间:2023-12-04 20:46:44 25 4
gpt4 key购买 nike

我想知道从 Lat、Lon、Alt 值到 ECEF(以地球为中心)等 3D 系统的转换。

这可以实现如下( https://gist.github.com/1536054 ):

/*
* WGS84 ellipsoid constants Radius
*/
private static final double a = 6378137;
/*
* eccentricity
*/
private static final double e = 8.1819190842622e-2;

private static final double asq = Math.pow(a, 2);
private static final double esq = Math.pow(e, 2);

void convert(latitude,longitude,altitude){
double lat = Math.toRadians(latitude);
double lon = Math.toRadians(longitude);
double alt = altitude;

double N = a / Math.sqrt(1 - esq * Math.pow(Math.sin(lat), 2));

x = (N + alt) * Math.cos(lat) * Math.cos(lon);
y = (N + alt) * Math.cos(lat) * Math.sin(lon);
z = ((1 - esq) * N + alt) * Math.sin(lat);
}

在我看来很奇怪的是,高度的一点点变化会影响 x、y 和 z,而我所期望的,它只会影响一个轴。例如,如果我有两个 GPS 点,它们具有相同的纬度/经度值但高度值不同,我将得到 3 个不同的 x、y、z 坐标。

有人可以解释这背后的“想法”吗?这对我来说看起来很好奇......是否有任何其他 3D 系统,当我降低/提高我的高度值时,其中只有一个值发生变化?

非常感谢!

最佳答案

如果你看这张图:ECEF Coordinate System

那么你明白为什么了。
ECEF 是一个围绕地球的立方体,以地心为中心。
如果海拔升高你搬出去。
Lat/lon 是一个“角度”坐标系,其中 lat,lon 是角度,
ECEF 是 cartesian坐标系!

可能你认为 ECEF 就像地球中心高度为 0 的 LatLon,但事实并非如此。

关于gps - 经度、纬度、高度到 3D-笛卡尔坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16614057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com