2011-05-18 60 views
0

我正在为javascript(用于NodeJS和浏览器JavaScript)编写一个坐标转换库。我已经完成了很多工作。如果您有兴趣,请致电Check it out。我没有编写大部分代码,所以我不完全确定一切是如何工作的。MGRS/USNG-检测区域更改

从我所知道的情况来看,MGRS/USNG区域基本上被重命名为UTM区域,而UTM区域又以纬度/长度来定义。

比方说,我有一个MGRS坐标,我移动一定的位移。我能否准确确定是否跨越区域边界而没有先转换为lat/long?我知道如何在区域内移动时更新坐标,因为大部分区域内的所有东西都是正方形的。

有没有办法检测区域的变化,而不必转换为lat/long?

是否有任何图书馆,在任何语言,这样做?

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

注:

我确实发现this article解释坐标转换,但是这并没有真正涵盖坐标变换。

+0

我只注意到有用于制图一个stackexchange。这是否属于那里呢?这是一种混合的编程和制图。 – tjameson 2011-05-18 22:55:00

回答

1

从我发现的,它不可能直接转换MGRS和Lat/Long之间。

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

MGRS和UTM之间的转换很容易(而且几乎没有损失),UTM和lat/long之间的转换非常准确,尽管不是100%准确。

从我读过的内容来看,准确翻译MGRS坐标的最好方法是首先将其转换为纬度/经度,应用平移,然后转换回去。这对于检测区域变化是很好的,但是通过使用纬度/长度转换中的区域并在MGRS坐标中应用剩余的转换,可以找到更准确的目标点。这应该检测到中间区域的变化。

参考/资源:

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

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

2

openmap Java library可能有一些帮助(你可以调整代码到JavaScript)。他们将MGRS转换为Lat/Lon等等。至于检测区域更改,您可以尝试将此问题发布到GIS Stack Exchange site。我相信有人会有答案。

MGRS有网格参考数字,而不是经纬度/纬度。见here。所以看起来你不需要转换成纬度/经度,以确定你穿过网格。

+0

我很害怕这个。我可以在那里移动我的问题吗?如果可能,我宁愿避免交叉发帖。 – tjameson 2011-05-18 23:03:28

+0

看到我上面的更新。 – dbryson 2011-05-18 23:12:37

+0

我认为区域是基于纬度/经度。这些区域内的其他一切都只有几米,这很容易。 – tjameson 2011-05-18 23:26:31