将lonlat转换为xyz,反之亦然

时间:2016-01-20 15:15:43

标签: math three.js

我正在使用此代码将lonlat转换为x,y,z,但无法弄清楚如何做相反的事情。

var phi = (this.lat)*Math.PI/180;
var theta = (this.lon-180)*Math.PI/180;

x = -(this.R) * Math.cos(phi) * Math.cos(theta);
y = -(this.R) * Math.sin(phi);
z = (this.R) * Math.cos(phi) * Math.sin(theta);

现在从x,y,z转换为lonlat

lat = THREE.Math.radToDeg(Math.asin(rotation.y / this.R));
lon = THREE.Math.radToDeg(Math.atan2(rotation.z, rotation.x));

但这不能正常,我做错了什么?

1 个答案:

答案 0 :(得分:0)

好吧,你没有从xyz转换到lon lat,你正试图用欧拉角做一些事情:

尝试这样的事情

SQLNET.AUTHENTICATION_SERVICES = (NONE;NTS)