= Welcome to '''''Proj4J''''' = [[TOC]] '''''Proj4J''''' is a Java library to transform point coordinates from one geographic coordinate system to another, including datum transformations. The core of this library is a port of the [http://trac.osgeo.org/proj/ PROJ.4] C library. The projection algorithms and coordinate system definitions are ported from PROJ.4. These are wrapped in a Java class model which follows standard Java conventions and OO best practices, and which provides a convenient domain model for working with coordinate systems. Proj4J is a part of the [http://trac.osgeo.org/metacrs/wiki/WikiStart MetaCRS] group of projects, hosted by [http://osgeo.org OSGeo]. == Features == * Uses the PROJ.4 coordinate system definition files * Supports many PROJ.4 parameters * Implements over 90 projections * Provides coordinate system definitions for EPSG and ESRI authorities * Simple, efficient API * Provides a test framework compatible with the [http://trac.osgeo.org/metacrs/wiki/TestSuite MetaCRS Test Suite] * Provides unit tests defined in MetaCRS format == Download == '''Status: Currently this library is still being created, and is not yet ready for download''' * The current development source is available via anonymous SVN from http://svn.osgeo.org/metacrs/proj4j. * The library is [http://search.maven.org/#artifactdetails%7Corg.osgeo%7Cproj4j%7C0.1.0%7Cjar available via Maven]: `org.osgeo:proj4j:jar:0.1.0` == Documentation == * The [http://trac.osgeo.org/proj/#Documentation PROJ.4 documentation] is the best reference for details of the coordinate system specification language, projection algorithms and supported parameters. * the [http://trac.osgeo.org/proj4j/browser/trunk/src/doc/Proj4J%20Version%20History.html?format=raw Version History] lists the evolution of features of the library * The [wiki:DesignGoals Design Goals] provide the thinking guiding project development * The [wiki:Roadmap Development Roadmap] details future directions for development == Mailing List == A mailing list is available for users and developers of Proj4J. * Subscription, unsubscription and a web archive are at http://lists.osgeo.org/mailman/listinfo/proj4j. * Direct link to the [http://lists.osgeo.org/pipermail/proj4j/ mailing list archive]. == Development == * SVN repository: http://svn.osgeo.org/metacrs/proj4j. * Browse source [http://trac.osgeo.org/proj4j/browser here]. == Bug Tracking == * [/proj4j/newticket Submit a new bug report] (you need to [http://trac.osgeo.org/proj4j/login login] with an [http://www.osgeo.org/osgeo_userid OSGeo Userid]) * [query:status!=closed&type=defect&order=id&desc=1 List Open Bugs] * [query:status!=closed&type=enhancement&order=id&desc=1,compact List Open Enhancement Requests] == License == Proj4J is licensed under the [http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0]. == Related Resources == * The PROJ.4 site has a [http://trac.osgeo.org/proj/#RelatedResources comprehensive list of resources] dealing with Coordinate Systems in general and the PROJ.4 library in particular. == Project History == The Proj4J codebase is based on the Java Map Projections Library. This is a partial port of PROJ.4 carried out by Jerry Huxtable at [http://www.jhlabs.com/java/maps/proj/index.html JHLabs], circa 2006. The JHLabs port provided a large number of the PROJ.4 projections, via a simple API. The Proj4J project was initiated in 2009 by Martin Davis with the following goals: * move the JHLabs codebase into an open, supported environment * minimize duplication of effort by tracking PROJ.4 as closely as reasonable * support further PROJ.4 features such as datum transformation * improve the error handling and reporting * improve the parsing and modeling of projection parameters * improve the API to make it more flexible, expressive and descriptive * add some missing projections * fix outstanding bugs in the projection algorithms * add a unit test framework (following the MetaCRS Unit Test design), with a comprehensive set of unit tests * add further tools to support using the library (such as a GUI interface) Since the launch of the project, the API has been substantially refactored and extended, to make the library more flexible, powerful, and extensible.