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.
Proj4J is a part of the MetaCRS group of projects, hosted by 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 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 available via Maven:
org.osgeo:proj4j:jar:0.1.0
Documentation
- 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
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 mailing list archive.
Development
- SVN repository: http://svn.osgeo.org/metacrs/proj4j.
- Browse source here.
Bug Tracking
- Submit a new bug report (you need to login with an OSGeo Userid)
- List Open Bugs
- List Open Enhancement Requests
License
Proj4J is licensed under the Apache License, Version 2.0.
Related Resources
- The PROJ.4 site has a 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 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.