【发布时间】:2020-03-12 04:42:07
【问题描述】:
我正在做一个 Javascript 应用程序,它需要在现实世界地图中以帧为单位移动某个元素。
对于每一帧,我在元素的纬度和经度上都有以下位置,例如帧 0:
- 纬度:49.011213
- 经度:8.422885
对于第 1 帧:
- 纬度:49.01121
- 经度:8.422887
Frame (Frame 0) 需要是点 (0,0),我希望以下的也转换为 XY 坐标。
基本上,我需要一个 Javascript 脚本来接收帧的纬度和经度并返回该帧的位置 (x,y)(相对于位置为 (0,0) 的帧 0)。
我尝试了以下方法,但它不起作用:
function convertSphericalToCartesian(latitude, longitude)
{
// Convert from Degrees to Radians
let latRad = latitude * (Math.PI)/180;
let lonRad = longitude * (Math.PI)/180;
let earthRadius = 6367; // Radius in km
let posX = earthRadius * Math.cos(latRad) * Math.cos(lonRad);
let posY = earthRadius * Math.cos(latRad) * Math.sin(lonRad);
return {x: posX, y: posY};
}
你知道一个更好的公式吗?非常感谢。
【问题讨论】:
标签: javascript math geometry mapping coordinates