From Wikipedia, the free encyclopedia
(Redirected from PROJ.4)
Original author(s)Gerald Evenden
Developer(s)Frank Warmerdam
Stable release
9.4.0[1] Edit this on Wikidata / 1 March 2024; 2 months ago (1 March 2024)
Written inC++, C
LicenseMIT Edit this at Wikidata

PROJ (formerly PROJ.4) is a library for performing conversions between cartographic projections. The library is based on the work of Gerald Evenden at the United States Geological Survey (USGS),[2] but since 2019-11-26 is an Open Source Geospatial Foundation (OSGeo) project maintained by the PROJ Project Steering Committee (PSC). The library also ships with executables for performing these transformations from the command line.


The history of PROJ dates back to the late 1970s,[3] and the first release of PROJ was developed by Gerald Evenden in the early 1980s as a Ratfor program.[4] It was based on the General Cartographic Transformation Package or GCTP, which consisted of Fortran subroutines that could be used to project geographic data. The second release of PROJ from 1985 was rewritten in C to run on UNIX systems.[5] The third release of PROJ from 1990, was expanded to support approximately 70 cartographic projections.[2] Evenden further developed a fourth release in 1994, named PROJ.4. The last version maintained by Evenden was 4.3, released on September 24, 1995.

After over four years of inactivity, Frank Warmerdam became the new maintainer and released version 4.4 on March 21, 2000. As of May 2008, PROJ became part of the MetaCRS project, a confederation of coordinate systems related projects under incubation with OSGeo.

With the release of version 5.0 in February 2018, the software was renamed to PROJ, removing version four (".4") from the name. With the acquisition of the domain name in June 2019, the project was also renamed as PROJ.


The string format that PROJ uses to describe coordinate systems and transformations, proj string or proj.4 string, is widely used beyond PROJ proper. A wide variety of ports or bindings in other programming languages have been developed.

  • Bindings based on the PROJ library (libproj) exist for Python, Ruby, Rust, Golang, Julia, TCL, MySQL, Excel, Visual Basic, and Fortran.[6] PROJ.4 additionally had bindings for R and Perl.[7][8]
  • Proj4JS (JavaScript) and Proj4J (Java) are ports of PROJ into different programming languages now managed under MetaCRS.[9]

See also[edit]

  • GDAL a library that provides a single abstract data model for geospatial data formats which uses PROJ to perform coordinate transformations.


  1. ^ "Release 9.4.0". 1 March 2024. Retrieved 25 March 2024.
  2. ^ a b Evenden, Gerald I. (2003-01-01) [1990]. Cartographic Projection Procedures for the UNIX Environment—A User's Manual (PDF). Open-File Report 90-284. U.S. Geological Survey. p. 64. Retrieved 2015-08-14.
  3. ^ Kresse, W.; Danko, D.M. (2011). Springer Handbook of Geographic Information. Springer Handbook of Geographic Information. Springer Verlag. p. 948. ISBN 978-3-540-72678-4. Retrieved 5 June 2019. PROJ and CS-Map are coordinate reference system and coordinate transformation libraries. ... The history of PROJ.4 starts in the late 1970s, when Gerald Evenden was involved in the development of map plotting software, at the Atlantic Geology branch of the United States Geological Survey (USGS).
  4. ^ Evenden, Gerald I. (1983). Forward and inverse cartographic projection procedures. Open-File Report 83-625. U.S. Geological Survey. p. 76. Retrieved 2015-08-14.
  5. ^ Evenden, Gerald I.; Botbol, J.M. (1985). User's manual for MAPGEN (UNIX version); a method of transforming digital cartographic data to a map. Open-File Report 85-706. U.S. Geological Survey. p. 140. doi:10.3133/ofr85706.
  6. ^ "Language bindings". PROJ 7.0.1 documentation.
  7. ^ Urbanek, Simon (2 March 2020). "proj4: A simple interface to the PROJ.4 cartographic projectionslibrary".
  8. ^ "Geo::Proj4 -".
  9. ^ "MetaCRS".

External links[edit]