Java - 将MGRS坐标转换为LatLon WGS

时间:2014-09-06 16:24:47

标签: java android coordinate-transformation

对于我的应用程序,我需要用于在LatLon(WGS84)和MGRS之间进行转换的紧凑代码。

JCoord.jar: 看起来很棒,但1.1版jar的大小是0.5Mb。这是我的应用程序的两倍,仅用于执行双向坐标转换。

Openmap: 仅从其余部分中隔离MGRSPoint.java(https://code.google.com/p/openmap/source/browse/src/openmap/com/bbn/openmap/proj/coords/MGRSPoint.java)并不容易。

GeographicLib: 这似乎是一个很好的解决方案,但我找不到Java源文件。 可以使用吗?

美国宇航局: Nasa代码看起来很棒,请参阅http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind/src/gov/nasa/worldwind/geom/coords/MGRSCoordConverter.java。仅隔离MGRS转换代码并不容易。

GDAL: 用另一种编程语言实现。

IBM(通过j-coordconvert.zip): 抱怨,适合UTM转换,但MGRS转换被描述为错误。唉。

是否存在用于在LatLon / wgs84和MGRS之间进行转换的良好(紧凑)Java源代码?

1 个答案:

答案 0 :(得分:2)

终于找到了一个足够好的答案。 Berico,谢谢你!

https://github.com/Berico-Technologies/Geo-Coordinate-Conversion-Java

此源代码隔离了NASA Java源代码并添加了1个不错的实用程序类。

示例:

double lat = 52.202050;  
double lon = 6.102050;
System.out.println( "To MGRS is " + Coordinates.mgrsFromLatLon( lat, lon));

反过来说:

String mgrs = "31UCU 59248 14149"; 
double[] latlon = Coordinates.latLonFromMgrs( mgrs);