2

我有一个 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 之前已经这样做了,那就太好了。

4

3 回答 3

2

我最终使用了以下内容:javascript 例程

正是我需要的。希望这篇文章对其他人有所帮助。谢谢!

于 2012-11-30T19:21:20.113 回答
1

您可以尝试使用proj4js库为您进行转换。看到这个问题- 投影是不同的,但你应该能够弄清楚。

于 2012-10-23T20:53:22.147 回答
1

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 ]

使用它,您可以两种方式进行投影。

于 2016-05-06T23:45:05.520 回答