0

我正在为 javascript 编写一个坐标转换库(适用于 NodeJS 和浏览器 javascript)。我已经做了很多了。 如果您有兴趣,请查看它。我没有编写大部分代码,所以我不确定一切是如何工作的。

据我所知,MGRS/USNG 区域基本上被重命名为 UTM 区域,而这些区域又是根据纬度/经度定义的。

假设我有一个 MGRS 坐标并且我移动了某个位移。我可以准确地确定我是否在没有先转换为纬度/经度的情况下越过了区域边界吗?我知道如何在区域内移动时更新坐标,因为在区域内大多数东西都是正方形的。

有没有一种方法可以检测区域变化而无需转换为纬度/经度?

有没有任何语言的图书馆可以做到这一点?

现有代码需要纬度和经度,所以我想我可以转换为纬度/经度,应用转换,然后转换回 MGRS。如果我只想确定我所在的区域,这不会那么糟糕,然后我可以将其余的转换内容保留在 MGRS 中以保持精度。唯一的问题是,我想尽可能精确。

笔记:

我确实找到了这篇解释坐标转换的文章,但这并没有真正涵盖坐标转换。

4

2 回答 2

2

openmap Java 库可能会有所帮助(您可以使代码适应 JavaScript)。他们将 MGRS 转换为纬度/经度等。至于检测区域变化,您可以尝试将此问题发布到GIS Stack Exchange 站点。我相信那里的人会有答案。

MGRS 有网格参考编号,而不是纬度/经度。见这里。因此,您似乎不需要转换为 lat/lng 来确定您是否越过了网格。

于 2011-05-18T22:55:17.207 回答
1

根据我的发现,无法直接在 MGRS 和 Lat/Long 之间进行转换。

MGRS(或就此而言的 USNG)使用与 UTM 相同的区域定义,由纬度/经度坐标定义。UTM 和 MGRS (USNG) 使世界基本上是平坦的,使用软糖因素来保持接近的精度(在一米左右)。由于这些网格被视为平坦的,因此它们对于确定区域边界是不可靠的,区域边界是根据大圆定义的。

MGRS 和 UTM 之间的转换很容易(并且几乎无损),UTM 和纬度/经度之间的转换非常准确,尽管不是 100% 精确。

根据我的阅读,准确转换 MGRS 坐标的最佳方法是首先将其转换为纬度/经度,应用转换,然后再转换回来。这有利于检测区域变化,但通过使用经纬度转换中的区域并在 MGRS 坐标中应用其余平移,可能会找到更准确的目标点。这应该检测到中间正方形区域的变化。

参考/资源:

http://en.wikipedia.org/wiki/Military_grid_reference_system

http://www.stellman-greene.com/mgrs_to_utm/

于 2011-05-24T05:06:29.880 回答