2009-11-04 118 views
2

是否存在Java的任何开源或“免费”库,我可以执行从一个空间系统到另一个空间系统的坐标变换?坐标变换

我发现Opengeo http://opengeo.org/,但它是一个巨大而全面的各种空间事物库。

有没有更小的存在?我需要从MGA56转换为WGS84。

+0

你需要什么转变(从要什么有什么)? – Seth 2009-11-04 23:55:47

回答

3

一个简单的解决方案是PROJ.4,但它没有Java绑定,所以使用它可能有点棘手。更完整(但可能比你想要的更大)解决方案将是GeoTools。但是快速搜索发现Java Map Projection Library,它似乎是PROJ.4的Java端口。我会试一试。

由于看起来您需要做一次数据平移,不仅需要投影,还需要有一些坐标系数据库。最容易掌握的就是EPSG数据库--PROJ.4带有一个EPSG映射文件,对于大多数用途来说这应该足够好。

它看起来像MGA56是EPSG:28356,当然WGS84是EPSG:4326

+0

OP似乎已经在使用GeoTools:http://stackoverflow.com/questions/1676940/google-maps-spatial-reference-system – 2009-11-05 02:31:10

+0

PROJ.4看起来不错。我使用ProjectionFactory.getNamedPROJ4CoordinateSystem()来获取投影。但是没有任何改变是可能的我读了它说的文档“坐标系和大地基准转换丢失”。 – JavaRocky 2009-11-05 03:21:05

+0

如果您使用的是GeoTools,请不要直接与PROJ4一起工作 - 对于EPSG字符串使用'CRSAuthorityFatory.createCoordinateReferenceSystem(epsgString)'' “EPSG:28356”和“EPSG:4326”然后执行CRS.findMathTransform(sourceCRS,targetCRS,true)。您需要在您的类路径中安装GeoTools EPSG JAR之一 - 我会推荐'gt-epsg-hsql',这是最容易使用的。 – 2009-11-06 18:08:11

3

有一个完全用Java编写的轻量级库。

坐标转换套件(简称CTS)是一个开发用于使用众所周知的大地测量算法和参数集进行坐标转换的库。

CTS处理4257个坐标参考系统(3910 EPSG)。

这个项目的源代码位于:

https://github.com/irstv/CTS