Environment variables

PROJ can be controlled by setting environment variables. Most users will have a use for the PROJ_LIB.

On UNIX systems environment variables can be set for a shell-session with:

$ export VAR="some variable"

or it can be set for just one command line call:

$ VAR="some variable" ./cmd

Environment variables on UNIX are usually removed with the unset command:

$ unset VAR

On windows systems environment variables can be set in the command line with:

> set VAR="some variable"

`VAR will be available for the entire session, unless it is unset. This is done by setting the variable with no content:

> set VAR=

The location of PROJ resource files.

Starting with PROJ 6, multiple directories can be specified. On Unix, they should be separated by the colon (:) character. on Windows, by the semi-colon (;) character.

PROJ is hardcoded to look for resource files in other locations as well, amongst those are the installation directory (usually share/proj under the PROJ installation root) and the current folder.

You can also set the location of the resource files using proj_context_set_search_paths() in the proj.h API header.

Changed in version 6.1.0: Starting with PROJ version 6.1.0, the paths set by proj_context_set_search_paths() will have priority over the PROJ_LIB to allow for multiple versions of PROJ resource files on your system without conflicting.


Set the debug level of PROJ. The default debug level is zero, which results in no debug output when using PROJ. A number from 1-3, whit 3 being the most verbose setting.


New in version 7.0.0.

If set to ON, enable the capability to use remote grids stored on CDN (Content Delivery Network) storage, when grids are not available locally. Alternatively, the proj_context_set_enable_network() function can be used.


New in version 7.0.0.

Define the endpoint of the CDN storage. Normally defined through the proj.ini configuration file locale in PROJ_LIB. Alternatively, the proj_context_set_url_endpoint() function can be used.