【问题标题】:Converting Cartesian (ECEF) to WGS84 (Lat/Long Decimal) using JavaScript使用 JavaScript 将笛卡尔 (ECEF) 转换为 WGS84 (Lat/Long Decimal)
【发布时间】:2016-05-07 07:45:05
【问题描述】:

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

【问题讨论】:

标签: javascript mapping geospatial


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以尝试使用proj4js 库为您进行转换。请参阅this question - 投影不同,但您应该能够弄清楚。

    【讨论】:

      【解决方案3】:

      在 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 ]
      

      使用它,您可以双向投影。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多