javascript - 使用D3将NZTM2000坐标转换为WGS84

标签 javascript map-projections

我一直在尝试将一些 NZTM2000(新西兰使用的横轴墨卡托投影的变体 (http://www.linz.govt.nz/data/geodetic-system/datums-projections-and-heights/projections/new-zealand-transverse-mercator-2000))转换为 WSG84 纬度/经度坐标,但没有成功。

NZTM2000 规范表明 TM 配置了以下参数:

  • 原点纬度:° 00' 00"South
  • 原点经度/中央子午线:173° 00' 00"East
  • 北向错误:向北 10,000,000 米
  • 东错误:东1,600,000米
  • 中央子午线比例因子:0.9996

我尝试在 S3 中使用它们:

var projection = d3.geo.transverseMercator()
    .rotate([origin_lat, origin_lng])
    .scale(scale_factor)
    .center([false_northing, false_esting])

(以及其他方式)。

我使用的是具有已知 WGS84 值的小数据子集:

NZTM2000                WSG84
---------------------   -------------------------------
Norting     Easting     Latitude        Longitude
5771280.5   1900560.5   38 09 22.691 S  176 25 48.538 E
5771280.5   1900570.5   38 09 22.679 S  176 25 48.948 E
5771280.5   1900571.5   38 09 22.678 S  176 25 48.989 E
5771280.5   1900572.5   38 09 22.677 S  176 25 49.030 E

有什么帮助吗?

非常感谢

最佳答案

我终于在LINZ网站上找到了解决方案。他们已经在http://www.linz.govt.nz/data/geodetic-services/download-geodetic-software#nztm2000处用C语言编码了算法。 .

然后,有人将其移植到 C# https://github.com/leighghunt/nztm/blob/master/nztm/nztm.cs .

我将这个最新版本移植到 JavaScript,它运行得很好。

如果您想要我的版本,请给我发送消息。

======== 你能在github上分享一下Javascript版本吗?我真的需要它

关于javascript - 使用D3将NZTM2000坐标转换为WGS84,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31939586/

相关文章:

javascript - 如何在重试 Ajax 场景中消除这种丑陋的重复代码?

javascript - 当不存在周围元素时跟踪 Canvas 中的鼠标位置

javascript - 有没有一种方法可以在 Javascript 中拦截/监视使用 vanilla Javascript 更改的 CSS 属性

leaflet - 使用 Leaflet 显示 geojson featureCollection

java - 实现 Google 墨卡托(球形墨卡托)

openlayers - 如何将 map 上的两点线投影成曲线 OpenLayers

Python - 根据(谷歌) map 上的坐标获取度数和米数之间的比率

javascript - 在调整窗口大小时右对齐

javascript - 如何检查ajax缓存?

javascript - BNG 中的 Open Layers 3 鼠标位置检测不起作用