Java中不同Map投影之间的转换

时间:2011-01-21 13:06:06

标签: java gis map-projections proj4

在我的GIS应用程序中,数据有时存储在“Google Mercator”(以米为单位)中,有时存储在WGS84 LatLon中。 我想要一个可靠的库来轻松地以“科学”的方式转换这些数据,而不是手动搞乱它,冒着很大的错误。

我遇到了 Proj4 ,显然能够做到这一点:http://trac.osgeo.org/proj

但我找不到类似的Java库(或Groovy)。 鉴于这些预测在在线应用中越来越普遍,这样的项目将是非常有益的。一个小罐子会很棒: - )

有一个Java端口,但没有任何文件可供下载:http://www.jhlabs.com/java/maps/proj/

基本上我需要进行这种转换:http://proj4js.org

有关如何在Java中执行此操作的想法吗?

谢谢, Mulone

3 个答案:

答案 0 :(得分:5)

看看GeoTools。不好的是你没有得到一个小罐子,但大约有一百个。

This Tutorial可能会显示出您想要完成的内容。

答案 1 :(得分:0)

JH Labs的Java端口,现在由俄勒冈州立大学的制图和地理可视化组维护,现在在GitHub上: https://github.com/OSUCartography/JMapProjLib

答案 2 :(得分:0)

我还推荐GeoTools:看看CRS课程:

http://docs.geotools.org/latest/userguide/library/referencing/crs.html

使用Maven:

    <dependency>
      <groupId>org.geotools</groupId>
      <artifactId>gt-api</artifactId>
      <version>8-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-referencing</artifactId>
        <version>8-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-epsg-hsql</artifactId>
        <version>8-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-epsg-extension</artifactId>
        <version>${version.geotools}</version>
    </dependency>

gt-epsg-hsql基本上包含一个HSQL数据库,其中已加载了CRS定义。但是,您也可以使用WKT手动加载定义:

CRS.parseWKT( txt )

这意味着您可以弹出http://spatialreference.org/,获取OGC WKT定义并将其连接到其中。

此外,如果你想要走这条路线,Proj4确实有JNI绑定。