PROJ is a generic coordinate transformation software that transforms geospatial coordinates from one coordinate reference system (CRS) to another. This includes cartographic projections as well as geodetic transformations. PROJ is released under the X/MIT open source license
PROJ includes command line applications for easy conversion of coordinates from text files or directly from user input. In addition to the command line utilities PROJ also exposes an application programming interface, or API in short. The API lets developers use the functionality of PROJ in their own software without having to implement similar functionality themselves.
PROJ started purely as a cartography application letting users convert geodetic coordinates into projected coordinates using a number of different cartographic projections. Over the years, as the need has become apparent, support for datum shifts has slowly worked its way into PROJ as well. Today PROJ supports more than a hundred different map projections and can transform coordinates between datums using all but the most obscure geodetic techniques.
Homepage
Download
Recent Releases
9.5.127 Nov 2024 00:16
major bugfix:
## Updates
* Database: update to EPSG v11.021 (#4254, #4275, #4297)
* Speed-up dramatically proj.db build time (#4280)
* Database: ingest deprecated ESRI names to be able to better import old WKT ESRI (#4282)
### Bug fixes
* `findsOpsInRegistryWithIntermediate()`: Restrict to using known source/target CRS that have the same originating authority (#4252)
* `isTimeDependent()`: Do not mark "static" Coordinate Frame helmert transformations as time-dependent, only time-dependent ones (#4259)
* Fix clang-19 "warning: empty paragraph passed to '@throw' command -Wdocumentation " (#4263)
* WKT importer: fix `nullptr` dereference on invalid `VERTCS ` (#4266)
* Fixed `sql_filelist.cmake` relative path issue (#4296)
* Fail consistently on network error and grid transformations (#4302)
* Fix `-Wshadow` warnings between `parammappings.cpp` and `singleoperation.cpp` with unity builds (#4304)
* Removed leftover setting of `CMAKE_REQUIRED_FLAGS` (#4322)
* WKT1 ESRI export: fix wrong mapping of Lambert Cylindrical Equal Area to Behrmann (#4328)
* Numerous documentation fixes (#4248, #4267, #4291, #4293)
9.4.002 Mar 2024 00:42
major feature:
Updates
-------
o Add support for transformations involving coordinate epoch changes
(PointMotionOperation), specifically for Canadian NAD83(CSRS)(#3884)
o SSL_OPTIONS: set SSL options on Curl library (#3936)
o Add support for unity builds (#3962)
o Added ability to install *.tif if present in data (#3970)
o createOperationsCompoundToGeog(): tune selection logic
when --grid-check known_available is specified (#3990)
o Increase CMake minimum version from 3.9 to 3.16 (#3997)
o CMake: use FetchContent to get googletest-1.12.1 (#4006)
o CMake: Replace custom FindSqlite3 with FindSQLite3 built-in (#4007)
o tpeqd: use numerically stable formula for computing the central angle
from (phi_1, lam_1) to (phi_2, lam_2) (#4009)
o Move content of proj_experimental.h to proj.h (#4019)
o Add +proj=mod_krovak projection method for Modified Krovak that
applies to S-JTSK/05 in the Czech Republic (#4021)
o PROJString formatter optimizer: simplify pipelines doing
Modified Krovak (South West) Modified Krovak (East North)
by just doing an axis swap (#4034)
o +proj=gridshift: enhance to support grids referenced in projected CRS,
and with easting_offset/northing_offset corrections (#4038)
o Tune concatenated operation instanciation, reference CR2005 geoid for
Czechia and add (disabled by default) records for Czechia S-JTSK/05 based
transformations (#4044)
o Database: update to EPSG v11.004 (#4062)
Bug fixes
---------
o Fix missing symbols at link time for Windows target in Visual Studio (#3984)
o Improve error message in axisswap (#3975)
o Avoid convergence errors in +proj=gridshift when using biquadratic
interpolation (#3985)