我知道有其他类似的问题,但它们大多只涉及将一个转换为另一个。但我正在寻找一种算法,可以相互转换。仅使用其中一个并不能产生期望的结果。
对于我的目的,单位球体是完全可接受的。任何半径值都将为1。
以下是我当前的方法,用简单的伪代码执行此操作。
从纬度和经度到单位球体上的点。
对于我的目的,单位球体是完全可接受的。任何半径值都将为1。
以下是我当前的方法,用简单的伪代码执行此操作。
从纬度和经度到单位球体上的点。
x = cos( longitude ) * sin( latitude ) y = sin( longitude ) * sin( latitude ) z = cos( latitude )从单位球体上的三维坐标到纬度和经度。
latitude = acos( z ) longitude = atan2( x, y )然而,这些并不是可逆的,而且我的三角学不如应该的那样好。
atan
函数无法返回正确象限的角度,这就是atan2
的作用。 - SirGuyatan2
先接收y
,然后是x
。这样就能解决那个问题了。 - SirGuy