Welcome to Proj4J
Table of Contents
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 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.
- 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 MetaCRS Test Suite
- Provides unit tests defined in MetaCRS format
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 available via Maven:
- The PROJ.4 documentation is the best reference for details of the coordinate system specification language, projection algorithms and supported parameters.
- the Version History lists the evolution of features of the library
- The Design Goals provide the thinking guiding project development
- The Development Roadmap details future directions for development
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 mailing list archive.
- Submit a new bug report (you need to login with an OSGeo Userid)
- List Open Bugs
- List Open Enhancement Requests
Proj4J is licensed under the Apache License, Version 2.0.
- The PROJ.4 site has a comprehensive list of resources dealing with Coordinate Systems in general and the PROJ.4 library in particular.
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 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.