Преобразование между различными проекциями карты в Java - PullRequest
7 голосов
/ 21 января 2011

В моем ГИС-приложении данные иногда хранятся в «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 ]

5 голосов
/ 21 января 2011

Посмотрите на GeoTools . Плохо то, что ты получаешь не маленькую баночку, а около ста.

Этот урок может показать что-то похожее на то, чего вы хотите достичь.

0 голосов
/ 14 августа 2012

Я бы также порекомендовал 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, если вы хотите пойти по этому пути.

0 голосов
/ 20 февраля 2012

Java-порт от JH Labs, в настоящее время поддерживаемый Группой картографии и геовизуализации, Государственный университет Орегона в настоящее время работает на GitHub: https://github.com/OSUCartography/JMapProjLib

...