我有一个javascript文件正在读取包含笛卡尔坐标的文本文件。我可以解析出X,Y,Z值;但是我需要将这些转换为十进制格式的纬度/经度。这些输出值将用于谷歌地图标记。
我一直在研究,肯定有很多关于纬度/长度到笛卡尔的转换的指南,但是我需要这个指向相反的方向。
尝试了以下几点:
//convert to lat long dec
var tmp = cartZ/6371;
//convert to radians
var tmpR = tmp * Math.PI / 180;
var lat = Math.asin(tmpR);
latFinal = lat * 180 / Math.PI;
alert (latFinal);
通常这是完全错误的...不确定我是否在正确的轨道上!
如果有人在使用javascript之前做到了这一点,那就太好了。
答案 0 :(得分:1)
您可以尝试使用proj4js库为您进行转换。请参阅this question - 投影不同,但您应该能够弄明白。
答案 1 :(得分:1)
我最终使用了以下内容:javascript routines
正是我所需要的。希望这篇文章对其他人有所帮助。谢谢!
答案 2 :(得分:0)
npmjs.org上有这个方便的库,可以帮到你。安装后(使用npm和browserify),您可以使用:
var projector = require('ecef-projector');
var xyz = projector.project(37.8043722, -122.2708026, 0.0);
console.log(xyz);
// output: [ -2694044.4111565403, -4266368.805493665, 3888310.602276871 ]
var gps = projector.unproject(xyz[0], xyz[1], xyz[2]);
console.log(gps);
// output: [ 37.8043722, -122.27080260000001, 0.0 ]
使用它你可以双向投射。