\hypertarget{proj_8h}{}\doxysection{src/proj.h File Reference}
\label{proj_8h}\index{src/proj.h@{src/proj.h}}
{\ttfamily \#include $<$stddef.\+h$>$}\newline
Include dependency graph for proj.\+h\+:
% FIG 0
This graph shows which files directly or indirectly include this file\+:
% FIG 1
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structPROJ__FILE__API}{PROJ\+\_\+\+FILE\+\_\+\+API}}
\item 
struct \mbox{\hyperlink{structPROJ__CRS__INFO}{PROJ\+\_\+\+CRS\+\_\+\+INFO}}
\begin{DoxyCompactList}\small\item\em Structure given overall description of a CRS. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structPROJ__CRS__LIST__PARAMETERS}{PROJ\+\_\+\+CRS\+\_\+\+LIST\+\_\+\+PARAMETERS}}
\begin{DoxyCompactList}\small\item\em Structure describing optional parameters for proj\+\_\+get\+\_\+crs\+\_\+list();. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structPROJ__UNIT__INFO}{PROJ\+\_\+\+UNIT\+\_\+\+INFO}}
\begin{DoxyCompactList}\small\item\em Structure given description of a unit. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structPROJ__CELESTIAL__BODY__INFO}{PROJ\+\_\+\+CELESTIAL\+\_\+\+BODY\+\_\+\+INFO}}
\begin{DoxyCompactList}\small\item\em Structure given description of a celestial body. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}}
\item 
typedef enum \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS}} \mbox{\hyperlink{proj_8h_a60d7844c1a5946a0442a70919ad2db3b}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS}}
\item 
typedef struct \mbox{\hyperlink{structPROJ__FILE__API}{PROJ\+\_\+\+FILE\+\_\+\+API}} \mbox{\hyperlink{proj_8h_ac24350a2ad399a1a52928654cc7a5c44}{PROJ\+\_\+\+FILE\+\_\+\+API}}
\item 
typedef struct \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}}
\item 
typedef \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} $\ast$($\ast$ \mbox{\hyperlink{proj_8h_acb853fa9db80d0d8d898a485e8376cc5}{proj\+\_\+network\+\_\+open\+\_\+cbk\+\_\+type}}) (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$url, unsigned long long offset, size\+\_\+t size\+\_\+to\+\_\+read, void $\ast$buffer, size\+\_\+t $\ast$out\+\_\+size\+\_\+read, size\+\_\+t error\+\_\+string\+\_\+max\+\_\+size, char $\ast$out\+\_\+error\+\_\+string, void $\ast$user\+\_\+data)
\item 
typedef void($\ast$ \mbox{\hyperlink{proj_8h_aaf732c562f9aff74e49302f1d15e616b}{proj\+\_\+network\+\_\+close\+\_\+cbk\+\_\+type}}) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} $\ast$handle, void $\ast$user\+\_\+data)
\item 
typedef const char $\ast$($\ast$ \mbox{\hyperlink{proj_8h_a5adb8137f1e0b8ccb9dde5aca10ce2d0}{proj\+\_\+network\+\_\+get\+\_\+header\+\_\+value\+\_\+cbk\+\_\+type}}) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} $\ast$handle, const char $\ast$header\+\_\+name, void $\ast$user\+\_\+data)
\item 
typedef size\+\_\+t($\ast$ \mbox{\hyperlink{proj_8h_a560064e2b97a70a24a0d420c7881ade1}{proj\+\_\+network\+\_\+read\+\_\+range\+\_\+type}}) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} $\ast$handle, unsigned long long offset, size\+\_\+t size\+\_\+to\+\_\+read, void $\ast$buffer, size\+\_\+t error\+\_\+string\+\_\+max\+\_\+size, char $\ast$out\+\_\+error\+\_\+string, void $\ast$user\+\_\+data)
\item 
typedef char $\ast$$\ast$ {\bfseries PROJ\+\_\+\+STRING\+\_\+\+LIST}
\begin{DoxyCompactList}\small\item\em Type representing a NULL terminated list of NULL-\/terminate strings. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS}} \{ \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997af2ba80849abee993eb10a6ffe8876ae7}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS\+\_\+\+READ\+\_\+\+ONLY}}
, \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997a81914ec3374ae193ca390645ebcc909d}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS\+\_\+\+READ\+\_\+\+UPDATE}}
, \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997ad0d7748c3190392d10e4a6209b64f470}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS\+\_\+\+CREATE}}
 \}
\item 
enum \mbox{\hyperlink{group__iso19111__types_ga3453493087d771fdd594accba4a60e16}{PJ\+\_\+\+GUESSED\+\_\+\+WKT\+\_\+\+DIALECT}} \{ \newline
\mbox{\hyperlink{group__iso19111__types_gga3453493087d771fdd594accba4a60e16ac68cb36e3ad209f1c2872bc6d5f42e35}{PJ\+\_\+\+GUESSED\+\_\+\+WKT2\+\_\+2019}}
, \mbox{\hyperlink{group__iso19111__types_gga3453493087d771fdd594accba4a60e16a029cfc571334dcbea9815929b60d18ea}{PJ\+\_\+\+GUESSED\+\_\+\+WKT2\+\_\+2018}} = PJ\+\_\+\+GUESSED\+\_\+\+WKT2\+\_\+2019
, \mbox{\hyperlink{group__iso19111__types_gga3453493087d771fdd594accba4a60e16a3d6484a5fbdc3a2fc3ea8eb349f98c63}{PJ\+\_\+\+GUESSED\+\_\+\+WKT2\+\_\+2015}}
, \mbox{\hyperlink{group__iso19111__types_gga3453493087d771fdd594accba4a60e16ac7cccffeb6901592ceba853c9586b6c4}{PJ\+\_\+\+GUESSED\+\_\+\+WKT1\+\_\+\+GDAL}}
, \newline
\mbox{\hyperlink{group__iso19111__types_gga3453493087d771fdd594accba4a60e16a9f287b70d8c417764f3ce64d138f37c1}{PJ\+\_\+\+GUESSED\+\_\+\+WKT1\+\_\+\+ESRI}}
, \mbox{\hyperlink{group__iso19111__types_gga3453493087d771fdd594accba4a60e16ad564d9c8fe177fd57079792ef1bf5c93}{PJ\+\_\+\+GUESSED\+\_\+\+NOT\+\_\+\+WKT}}
 \}
\begin{DoxyCompactList}\small\item\em Guessed WKT \char`\"{}dialect\char`\"{}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__iso19111__types_ga26c44aece2b0119157cd4a061e45321f}\label{group__iso19111__types_ga26c44aece2b0119157cd4a061e45321f}} 
enum \mbox{\hyperlink{group__iso19111__types_ga26c44aece2b0119157cd4a061e45321f}{PJ\+\_\+\+CATEGORY}} \{ \newline
{\bfseries PJ\+\_\+\+CATEGORY\+\_\+\+ELLIPSOID}
, {\bfseries PJ\+\_\+\+CATEGORY\+\_\+\+PRIME\+\_\+\+MERIDIAN}
, {\bfseries PJ\+\_\+\+CATEGORY\+\_\+\+DATUM}
, {\bfseries PJ\+\_\+\+CATEGORY\+\_\+\+CRS}
, \newline
{\bfseries PJ\+\_\+\+CATEGORY\+\_\+\+COORDINATE\+\_\+\+OPERATION}
, {\bfseries PJ\+\_\+\+CATEGORY\+\_\+\+DATUM\+\_\+\+ENSEMBLE}
 \}
\begin{DoxyCompactList}\small\item\em Object category. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{group__iso19111__types_ga0acde08a3427c34e551a61f758b31c48}{PJ\+\_\+\+TYPE}} \{ \newline
{\bfseries PJ\+\_\+\+TYPE\+\_\+\+UNKNOWN}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+ELLIPSOID}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+PRIME\+\_\+\+MERIDIAN}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+GEODETIC\+\_\+\+REFERENCE\+\_\+\+FRAME}
, \newline
{\bfseries PJ\+\_\+\+TYPE\+\_\+\+DYNAMIC\+\_\+\+GEODETIC\+\_\+\+REFERENCE\+\_\+\+FRAME}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+VERTICAL\+\_\+\+REFERENCE\+\_\+\+FRAME}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+DYNAMIC\+\_\+\+VERTICAL\+\_\+\+REFERENCE\+\_\+\+FRAME}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+DATUM\+\_\+\+ENSEMBLE}
, \newline
\mbox{\hyperlink{group__iso19111__types_gga0acde08a3427c34e551a61f758b31c48a50fab9ac545eb788d3b99ae46cf7a4df}{PJ\+\_\+\+TYPE\+\_\+\+CRS}}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+GEODETIC\+\_\+\+CRS}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+GEOCENTRIC\+\_\+\+CRS}
, \mbox{\hyperlink{group__iso19111__types_gga0acde08a3427c34e551a61f758b31c48a486bb5b77b77ea0fa4c08ea2e7a442d2}{PJ\+\_\+\+TYPE\+\_\+\+GEOGRAPHIC\+\_\+\+CRS}}
, \newline
{\bfseries PJ\+\_\+\+TYPE\+\_\+\+GEOGRAPHIC\+\_\+2\+D\+\_\+\+CRS}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+GEOGRAPHIC\+\_\+3\+D\+\_\+\+CRS}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+VERTICAL\+\_\+\+CRS}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+PROJECTED\+\_\+\+CRS}
, \newline
{\bfseries PJ\+\_\+\+TYPE\+\_\+\+COMPOUND\+\_\+\+CRS}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+TEMPORAL\+\_\+\+CRS}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+ENGINEERING\+\_\+\+CRS}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+BOUND\+\_\+\+CRS}
, \newline
{\bfseries PJ\+\_\+\+TYPE\+\_\+\+OTHER\+\_\+\+CRS}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+CONVERSION}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+TRANSFORMATION}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+CONCATENATED\+\_\+\+OPERATION}
, \newline
{\bfseries PJ\+\_\+\+TYPE\+\_\+\+OTHER\+\_\+\+COORDINATE\+\_\+\+OPERATION}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+TEMPORAL\+\_\+\+DATUM}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+ENGINEERING\+\_\+\+DATUM}
, {\bfseries PJ\+\_\+\+TYPE\+\_\+\+PARAMETRIC\+\_\+\+DATUM}
 \}
\begin{DoxyCompactList}\small\item\em Object type. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{group__iso19111__types_ga654e7e400a70ad33bfbb23d9d1df39ee}{PJ\+\_\+\+COMPARISON\+\_\+\+CRITERION}} \{ \mbox{\hyperlink{group__iso19111__types_gga654e7e400a70ad33bfbb23d9d1df39eea58a16adffac77f2ea0790c931a019cc2}{PJ\+\_\+\+COMP\+\_\+\+STRICT}}
, \mbox{\hyperlink{group__iso19111__types_gga654e7e400a70ad33bfbb23d9d1df39eea62f216b8be8636239b27e7cbe3da1c86}{PJ\+\_\+\+COMP\+\_\+\+EQUIVALENT}}
, \mbox{\hyperlink{group__iso19111__types_gga654e7e400a70ad33bfbb23d9d1df39eea403f7948c2c0127c5b23733727aa5809}{PJ\+\_\+\+COMP\+\_\+\+EQUIVALENT\+\_\+\+EXCEPT\+\_\+\+AXIS\+\_\+\+ORDER\+\_\+\+GEOGCRS}}
 \}
\item 
enum \mbox{\hyperlink{group__iso19111__types_gaa2c2de23d90fe0d1d335f6184bff764c}{PJ\+\_\+\+WKT\+\_\+\+TYPE}} \{ \newline
\mbox{\hyperlink{group__iso19111__types_ggaa2c2de23d90fe0d1d335f6184bff764ca2eb75464b58c0d53450e3f918beda107}{PJ\+\_\+\+WKT2\+\_\+2015}}
, \mbox{\hyperlink{group__iso19111__types_ggaa2c2de23d90fe0d1d335f6184bff764ca47783cb8b8618b947c792acc4704676c}{PJ\+\_\+\+WKT2\+\_\+2015\+\_\+\+SIMPLIFIED}}
, \mbox{\hyperlink{group__iso19111__types_ggaa2c2de23d90fe0d1d335f6184bff764ca385c236c0a6d8d0e32b7cb5b4f69da9e}{PJ\+\_\+\+WKT2\+\_\+2019}}
, \mbox{\hyperlink{group__iso19111__types_ggaa2c2de23d90fe0d1d335f6184bff764ca90f4f2d08eb84471fb5f3030778d0067}{PJ\+\_\+\+WKT2\+\_\+2018}} = PJ\+\_\+\+WKT2\+\_\+2019
, \newline
\mbox{\hyperlink{group__iso19111__types_ggaa2c2de23d90fe0d1d335f6184bff764caa4990cbbc9ceb6091db4997cab818bc3}{PJ\+\_\+\+WKT2\+\_\+2019\+\_\+\+SIMPLIFIED}}
, \mbox{\hyperlink{group__iso19111__types_ggaa2c2de23d90fe0d1d335f6184bff764ca0834502845e91e50a27e4138c3dc586f}{PJ\+\_\+\+WKT2\+\_\+2018\+\_\+\+SIMPLIFIED}} = PJ\+\_\+\+WKT2\+\_\+2019\+\_\+\+SIMPLIFIED
, \mbox{\hyperlink{group__iso19111__types_ggaa2c2de23d90fe0d1d335f6184bff764ca954fc3d4f834af1ae44d49fb3250733f}{PJ\+\_\+\+WKT1\+\_\+\+GDAL}}
, \mbox{\hyperlink{group__iso19111__types_ggaa2c2de23d90fe0d1d335f6184bff764ca5ae78834150a1efe397ef94456fa26ef}{PJ\+\_\+\+WKT1\+\_\+\+ESRI}}
 \}
\begin{DoxyCompactList}\small\item\em WKT version. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{group__iso19111__types_ga2223a725c58dab5bf93f20aecc9f03c5}{PROJ\+\_\+\+CRS\+\_\+\+EXTENT\+\_\+\+USE}} \{ \mbox{\hyperlink{group__iso19111__types_gga2223a725c58dab5bf93f20aecc9f03c5a14d7cd14f47c08c0a989dd93038d5088}{PJ\+\_\+\+CRS\+\_\+\+EXTENT\+\_\+\+NONE}}
, \mbox{\hyperlink{group__iso19111__types_gga2223a725c58dab5bf93f20aecc9f03c5aa78f99b22a591c67de63ebc84b8982bd}{PJ\+\_\+\+CRS\+\_\+\+EXTENT\+\_\+\+BOTH}}
, \mbox{\hyperlink{group__iso19111__types_gga2223a725c58dab5bf93f20aecc9f03c5af2c505f187abfbba1906d3b337cba632}{PJ\+\_\+\+CRS\+\_\+\+EXTENT\+\_\+\+INTERSECTION}}
, \mbox{\hyperlink{group__iso19111__types_gga2223a725c58dab5bf93f20aecc9f03c5a060f0036b2bb75a37ab8c970527364f3}{PJ\+\_\+\+CRS\+\_\+\+EXTENT\+\_\+\+SMALLEST}}
 \}
\item 
enum \mbox{\hyperlink{group__iso19111__types_ga8a63b764c6b5ad06b35f7fdf81bcaa93}{PROJ\+\_\+\+GRID\+\_\+\+AVAILABILITY\+\_\+\+USE}} \{ \mbox{\hyperlink{group__iso19111__types_gga8a63b764c6b5ad06b35f7fdf81bcaa93a24fc0488dc48c856240bb76a5b25f555}{PROJ\+\_\+\+GRID\+\_\+\+AVAILABILITY\+\_\+\+USED\+\_\+\+FOR\+\_\+\+SORTING}}
, \mbox{\hyperlink{group__iso19111__types_gga8a63b764c6b5ad06b35f7fdf81bcaa93ac2f3e7703fab0a5c5fd822936e0d3d28}{PROJ\+\_\+\+GRID\+\_\+\+AVAILABILITY\+\_\+\+DISCARD\+\_\+\+OPERATION\+\_\+\+IF\+\_\+\+MISSING\+\_\+\+GRID}}
, \mbox{\hyperlink{group__iso19111__types_gga8a63b764c6b5ad06b35f7fdf81bcaa93a3a89888e35d853048dd987cab48e810a}{PROJ\+\_\+\+GRID\+\_\+\+AVAILABILITY\+\_\+\+IGNORED}}
, \mbox{\hyperlink{group__iso19111__types_gga8a63b764c6b5ad06b35f7fdf81bcaa93a43ccf77f63882bf37c176969940385cf}{PROJ\+\_\+\+GRID\+\_\+\+AVAILABILITY\+\_\+\+KNOWN\+\_\+\+AVAILABLE}}
 \}
\item 
enum \mbox{\hyperlink{group__iso19111__types_gadd9b673c590f7f90a4b022c68a2b2b00}{PJ\+\_\+\+PROJ\+\_\+\+STRING\+\_\+\+TYPE}} \{ \mbox{\hyperlink{group__iso19111__types_ggadd9b673c590f7f90a4b022c68a2b2b00af3b0c368241b523426824fe0e97953c9}{PJ\+\_\+\+PROJ\+\_\+5}}
, \mbox{\hyperlink{group__iso19111__types_ggadd9b673c590f7f90a4b022c68a2b2b00a6ab85f34053d7904cef39f9c50639224}{PJ\+\_\+\+PROJ\+\_\+4}}
 \}
\begin{DoxyCompactList}\small\item\em PROJ string version. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{group__iso19111__types_gadfc8adff35d141ac9c3c27f457f25be1}{PROJ\+\_\+\+SPATIAL\+\_\+\+CRITERION}} \{ \mbox{\hyperlink{group__iso19111__types_ggadfc8adff35d141ac9c3c27f457f25be1a35e8f3d20b1828dd43a5f586f4f6442d}{PROJ\+\_\+\+SPATIAL\+\_\+\+CRITERION\+\_\+\+STRICT\+\_\+\+CONTAINMENT}}
, \mbox{\hyperlink{group__iso19111__types_ggadfc8adff35d141ac9c3c27f457f25be1a6ee5ddba902534048e218bf2da31a608}{PROJ\+\_\+\+SPATIAL\+\_\+\+CRITERION\+\_\+\+PARTIAL\+\_\+\+INTERSECTION}}
 \}
\item 
enum \mbox{\hyperlink{group__iso19111__types_ga7c79b426947391654b6ef2bca4a83835}{PROJ\+\_\+\+INTERMEDIATE\+\_\+\+CRS\+\_\+\+USE}} \{ \mbox{\hyperlink{group__iso19111__types_gga7c79b426947391654b6ef2bca4a83835a5a27780b3a4b8b931201c473fa5ed288}{PROJ\+\_\+\+INTERMEDIATE\+\_\+\+CRS\+\_\+\+USE\+\_\+\+ALWAYS}}
, \mbox{\hyperlink{group__iso19111__types_gga7c79b426947391654b6ef2bca4a83835a453e93c9ebefeedfb03dd0d557e30918}{PROJ\+\_\+\+INTERMEDIATE\+\_\+\+CRS\+\_\+\+USE\+\_\+\+IF\+\_\+\+NO\+\_\+\+DIRECT\+\_\+\+TRANSFORMATION}}
, {\bfseries PROJ\+\_\+\+INTERMEDIATE\+\_\+\+CRS\+\_\+\+USE\+\_\+\+NEVER}
 \}
\item 
enum \mbox{\hyperlink{group__iso19111__types_ga309b520b438e2c6d150b2e635a4afdf6}{PJ\+\_\+\+COORDINATE\+\_\+\+SYSTEM\+\_\+\+TYPE}} \{ \newline
{\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+UNKNOWN}
, {\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+CARTESIAN}
, {\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+ELLIPSOIDAL}
, {\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+VERTICAL}
, \newline
{\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+SPHERICAL}
, {\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+ORDINAL}
, {\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+PARAMETRIC}
, {\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+DATETIMETEMPORAL}
, \newline
{\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+TEMPORALCOUNT}
, {\bfseries PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+TEMPORALMEASURE}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{proj_8h_a0d19deb424deca88cd90a5429f2adbd7}{proj\+\_\+context\+\_\+set\+\_\+file\+\_\+finder}} (PJ\+\_\+\+CONTEXT $\ast$ctx, proj\+\_\+file\+\_\+finder finder, void $\ast$user\+\_\+data)
\begin{DoxyCompactList}\small\item\em Assign a file finder callback to a context. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{proj_8h_afe6b85648984b25309b399c68716f914}{proj\+\_\+context\+\_\+set\+\_\+search\+\_\+paths}} (PJ\+\_\+\+CONTEXT $\ast$ctx, int count\+\_\+paths, const char $\ast$const $\ast$paths)
\begin{DoxyCompactList}\small\item\em Sets search paths. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{proj_8h_ac46b8530cc786c7e9675a9ab4e55f9d4}{proj\+\_\+context\+\_\+set\+\_\+ca\+\_\+bundle\+\_\+path}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Sets CA Bundle path. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{proj_8h_ad8419df443b60938d928d7250f3e1c54}{proj\+\_\+context\+\_\+set\+\_\+fileapi}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const \mbox{\hyperlink{structPROJ__FILE__API}{PROJ\+\_\+\+FILE\+\_\+\+API}} $\ast$fileapi, void $\ast$user\+\_\+data)
\item 
void \mbox{\hyperlink{proj_8h_aaeeb31bf23fb19d63dd5f89c56490ebd}{proj\+\_\+context\+\_\+set\+\_\+sqlite3\+\_\+vfs\+\_\+name}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$name)
\item 
int \mbox{\hyperlink{proj_8h_a4cf6f08b647734f2681c7409b192672e}{proj\+\_\+context\+\_\+set\+\_\+network\+\_\+callbacks}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_acb853fa9db80d0d8d898a485e8376cc5}{proj\+\_\+network\+\_\+open\+\_\+cbk\+\_\+type}} open\+\_\+cbk, \mbox{\hyperlink{proj_8h_aaf732c562f9aff74e49302f1d15e616b}{proj\+\_\+network\+\_\+close\+\_\+cbk\+\_\+type}} close\+\_\+cbk, \mbox{\hyperlink{proj_8h_a5adb8137f1e0b8ccb9dde5aca10ce2d0}{proj\+\_\+network\+\_\+get\+\_\+header\+\_\+value\+\_\+cbk\+\_\+type}} get\+\_\+header\+\_\+value\+\_\+cbk, \mbox{\hyperlink{proj_8h_a560064e2b97a70a24a0d420c7881ade1}{proj\+\_\+network\+\_\+read\+\_\+range\+\_\+type}} read\+\_\+range\+\_\+cbk, void $\ast$user\+\_\+data)
\item 
int \mbox{\hyperlink{proj_8h_a9a771bc53b785bfe6a0f658f588d11ec}{proj\+\_\+context\+\_\+set\+\_\+enable\+\_\+network}} (PJ\+\_\+\+CONTEXT $\ast$ctx, int enabled)
\item 
int \mbox{\hyperlink{proj_8h_a2b7967c55ae6edd5b52c417a6183c801}{proj\+\_\+context\+\_\+is\+\_\+network\+\_\+enabled}} (PJ\+\_\+\+CONTEXT $\ast$ctx)
\item 
void \mbox{\hyperlink{proj_8h_a2e438ab67fe28502bb447cc48af913ca}{proj\+\_\+context\+\_\+set\+\_\+url\+\_\+endpoint}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$url)
\item 
const char $\ast$ \mbox{\hyperlink{proj_8h_a6413de983eb94a1a7d356efce66c36ff}{proj\+\_\+context\+\_\+get\+\_\+url\+\_\+endpoint}} (PJ\+\_\+\+CONTEXT $\ast$ctx)
\item 
const char $\ast$ \mbox{\hyperlink{proj_8h_af4a5207c142de7c57e41d3f242cb3152}{proj\+\_\+context\+\_\+get\+\_\+user\+\_\+writable\+\_\+directory}} (PJ\+\_\+\+CONTEXT $\ast$ctx, int create)
\item 
void \mbox{\hyperlink{proj_8h_ae20fdfc00246dd72d64ee74015998c41}{proj\+\_\+grid\+\_\+cache\+\_\+set\+\_\+enable}} (PJ\+\_\+\+CONTEXT $\ast$ctx, int enabled)
\item 
void \mbox{\hyperlink{proj_8h_a2f964528154ac9e426ab39d62d14e6e3}{proj\+\_\+grid\+\_\+cache\+\_\+set\+\_\+filename}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$fullname)
\item 
void \mbox{\hyperlink{proj_8h_a55c16fa365a1f57e33cb36a8ebbf79cc}{proj\+\_\+grid\+\_\+cache\+\_\+set\+\_\+max\+\_\+size}} (PJ\+\_\+\+CONTEXT $\ast$ctx, int max\+\_\+size\+\_\+\+MB)
\item 
void \mbox{\hyperlink{proj_8h_a47d7a4c280232d7e480655513ff31e8c}{proj\+\_\+grid\+\_\+cache\+\_\+set\+\_\+ttl}} (PJ\+\_\+\+CONTEXT $\ast$ctx, int ttl\+\_\+seconds)
\item 
void \mbox{\hyperlink{proj_8h_abb13ecf71360a5294158b89dead2e1c1}{proj\+\_\+grid\+\_\+cache\+\_\+clear}} (PJ\+\_\+\+CONTEXT $\ast$ctx)
\item 
int \mbox{\hyperlink{proj_8h_a336295aa5791dc3251913682f995c100}{proj\+\_\+is\+\_\+download\+\_\+needed}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$url\+\_\+or\+\_\+filename, int ignore\+\_\+ttl\+\_\+setting)
\item 
int \mbox{\hyperlink{proj_8h_aa17c90464d2c7d325d67493911b1a76b}{proj\+\_\+download\+\_\+file}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$url\+\_\+or\+\_\+filename, int ignore\+\_\+ttl\+\_\+setting, int($\ast$progress\+\_\+cbk)(PJ\+\_\+\+CONTEXT $\ast$, double pct, void $\ast$user\+\_\+data), void $\ast$user\+\_\+data)
\item 
PJ $\ast$ \mbox{\hyperlink{proj_8h_a6f2e97c76583b1053895ede4cfdc80de}{proj\+\_\+normalize\+\_\+for\+\_\+visualization}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Returns a PJ$\ast$ object whose axis order is the one expected for visualization purposes. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{proj_8h_a8a3936225c69913786d5e2dc815ebe4b}{proj\+\_\+trans\+\_\+bounds}} (PJ\+\_\+\+CONTEXT $\ast$context, PJ $\ast$P, PJ\+\_\+\+DIRECTION direction, double xmin, double ymin, double xmax, double ymax, double $\ast$out\+\_\+xmin, double $\ast$out\+\_\+ymin, double $\ast$out\+\_\+xmax, double $\ast$out\+\_\+ymax, int densify\+\_\+pts)
\begin{DoxyCompactList}\small\item\em Transform boundary,. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy}} (\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} list)
\item 
void \mbox{\hyperlink{group__iso19111__functions_ga6ed84e4b3915c7428e582b869c6fb6a6}{proj\+\_\+context\+\_\+set\+\_\+autoclose\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, int autoclose)
\begin{DoxyCompactList}\small\item\em Starting with PROJ 8.\+1, this function does nothing. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga3eff4cd87726e46cf5a4bf971c1cabf3}{proj\+\_\+context\+\_\+set\+\_\+database\+\_\+path}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$db\+Path, const char $\ast$const $\ast$aux\+Db\+Paths, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Explicitly point to the main PROJ CRS and coordinate operation definition database (\char`\"{}proj.\+db\char`\"{}), and potentially auxiliary databases with same structure. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga6c1139a7aeccd2ae7b21009215dfd7a5}{proj\+\_\+context\+\_\+get\+\_\+database\+\_\+path}} (PJ\+\_\+\+CONTEXT $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Returns the path to the database. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga6ab791c35012d9591cb94b1ad82fcb97}{proj\+\_\+context\+\_\+get\+\_\+database\+\_\+metadata}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Return a metadata from the database. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} \mbox{\hyperlink{group__iso19111__functions_gae33b9dccb71dc4c54a87a7ccaaac670f}{proj\+\_\+context\+\_\+get\+\_\+database\+\_\+structure}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Return the database structure. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__iso19111__types_ga3453493087d771fdd594accba4a60e16}{PJ\+\_\+\+GUESSED\+\_\+\+WKT\+\_\+\+DIALECT}} \mbox{\hyperlink{group__iso19111__functions_ga6b06d3c534dc0a78a2cc13b861542f1f}{proj\+\_\+context\+\_\+guess\+\_\+wkt\+\_\+dialect}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$wkt)
\begin{DoxyCompactList}\small\item\em Guess the \char`\"{}dialect\char`\"{} of the WKT string. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga757b6749056259c44e7acc66a700b5d8}{proj\+\_\+create\+\_\+from\+\_\+wkt}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$wkt, const char $\ast$const $\ast$options, \mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} $\ast$out\+\_\+warnings, \mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} $\ast$out\+\_\+grammar\+\_\+errors)
\begin{DoxyCompactList}\small\item\em Instantiate an object from a WKT string. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_gaed12a28a006cb9677d7ede2395e248d4}{proj\+\_\+create\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$auth\+\_\+name, const char $\ast$code, \mbox{\hyperlink{group__iso19111__types_ga26c44aece2b0119157cd4a061e45321f}{PJ\+\_\+\+CATEGORY}} category, int use\+PROJAlternative\+Grid\+Names, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Instantiate an object from a database lookup. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gac34dbd9d6b49aaf67ab62bf3891ab003}{proj\+\_\+uom\+\_\+get\+\_\+info\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$auth\+\_\+name, const char $\ast$code, const char $\ast$$\ast$out\+\_\+name, double $\ast$out\+\_\+conv\+\_\+factor, const char $\ast$$\ast$out\+\_\+category)
\begin{DoxyCompactList}\small\item\em Get information for a unit of measure from a database lookup. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga9f07363878036878575ad847a23326bd}{proj\+\_\+grid\+\_\+get\+\_\+info\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$grid\+\_\+name, const char $\ast$$\ast$out\+\_\+full\+\_\+name, const char $\ast$$\ast$out\+\_\+package\+\_\+name, const char $\ast$$\ast$out\+\_\+url, int $\ast$out\+\_\+direct\+\_\+download, int $\ast$out\+\_\+open\+\_\+license, int $\ast$out\+\_\+available)
\begin{DoxyCompactList}\small\item\em Get information for a grid from a database lookup. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_gab3f8fd8798ccde680bef1b37ee07cfc2}{proj\+\_\+clone}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em \char`\"{}\+Clone\char`\"{} an object. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga2e3581bd359824f198f118e46c630571}{proj\+\_\+create\+\_\+from\+\_\+name}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$auth\+\_\+name, const char $\ast$searched\+Name, const \mbox{\hyperlink{group__iso19111__types_ga0acde08a3427c34e551a61f758b31c48}{PJ\+\_\+\+TYPE}} $\ast$types, size\+\_\+t types\+Count, int approximate\+Match, size\+\_\+t limit\+Result\+Count, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Return a list of objects by their name. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__iso19111__types_ga0acde08a3427c34e551a61f758b31c48}{PJ\+\_\+\+TYPE}} \mbox{\hyperlink{group__iso19111__functions_gabbebc66b740741b14c89afa398a1b58a}{proj\+\_\+get\+\_\+type}} (const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return the type of an object. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gac821845a4a86f6dda55d8d2083e1e836}{proj\+\_\+is\+\_\+deprecated}} (const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return whether an object is deprecated. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga1643f868cc65aa73947545c06b984ecc}{proj\+\_\+get\+\_\+non\+\_\+deprecated}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return a list of non-\/deprecated objects related to the passed one. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gaeb8884c512c547adfb20bf649132cfc6}{proj\+\_\+is\+\_\+equivalent\+\_\+to}} (const PJ $\ast$obj, const PJ $\ast$other, \mbox{\hyperlink{group__iso19111__types_ga654e7e400a70ad33bfbb23d9d1df39ee}{PJ\+\_\+\+COMPARISON\+\_\+\+CRITERION}} criterion)
\begin{DoxyCompactList}\small\item\em Return whether two objects are equivalent. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gadd6e71f99a73b86afc5ced898cba126c}{proj\+\_\+is\+\_\+equivalent\+\_\+to\+\_\+with\+\_\+ctx}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj, const PJ $\ast$other, \mbox{\hyperlink{group__iso19111__types_ga654e7e400a70ad33bfbb23d9d1df39ee}{PJ\+\_\+\+COMPARISON\+\_\+\+CRITERION}} criterion)
\begin{DoxyCompactList}\small\item\em Return whether two objects are equivalent. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga127c2f37a3bc7535570c26e72b005f43}{proj\+\_\+is\+\_\+crs}} (const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return whether an object is a CRS. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga2cbd7427aee737d6e6bf49ba439d4da4}{proj\+\_\+get\+\_\+name}} (const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the name of an object. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_gae917ff661853ed52360dbfd4d3bcbf67}{proj\+\_\+get\+\_\+id\+\_\+auth\+\_\+name}} (const PJ $\ast$obj, int index)
\begin{DoxyCompactList}\small\item\em Get the authority name / codespace of an identifier of an object. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_gab1c678e033ee0a425f8c52af47a20ddf}{proj\+\_\+get\+\_\+id\+\_\+code}} (const PJ $\ast$obj, int index)
\begin{DoxyCompactList}\small\item\em Get the code of an identifier of an object. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga6c6f1bc87ee5a2c3c38f872b5eab1874}{proj\+\_\+get\+\_\+remarks}} (const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the remarks of an object. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_gaca5b39ab9b215732470128d96e93149b}{proj\+\_\+get\+\_\+scope}} (const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the scope of an object. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga2001cc5d15f27fd3e16c2a373559a39a}{proj\+\_\+get\+\_\+area\+\_\+of\+\_\+use}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj, double $\ast$out\+\_\+west\+\_\+lon\+\_\+degree, double $\ast$out\+\_\+south\+\_\+lat\+\_\+degree, double $\ast$out\+\_\+east\+\_\+lon\+\_\+degree, double $\ast$out\+\_\+north\+\_\+lat\+\_\+degree, const char $\ast$$\ast$out\+\_\+area\+\_\+name)
\begin{DoxyCompactList}\small\item\em Return the area of use of an object. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga87d87597aad60bf06a45997fb8eaa52e}{proj\+\_\+as\+\_\+wkt}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj, \mbox{\hyperlink{group__iso19111__types_gaa2c2de23d90fe0d1d335f6184bff764c}{PJ\+\_\+\+WKT\+\_\+\+TYPE}} type, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Get a WKT representation of an object. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_gab903de54d45fd8a7d8d7cb53662c1826}{proj\+\_\+as\+\_\+proj\+\_\+string}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj, \mbox{\hyperlink{group__iso19111__types_gadd9b673c590f7f90a4b022c68a2b2b00}{PJ\+\_\+\+PROJ\+\_\+\+STRING\+\_\+\+TYPE}} type, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Get a PROJ string representation of an object. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga667fc1dac4d91d40ea89d90f70b147e7}{proj\+\_\+as\+\_\+projjson}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Get a PROJJSON string representation of an object. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_gaca20f75e07f699cbcddea5013038af3d}{proj\+\_\+get\+\_\+source\+\_\+crs}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return the base CRS of a Bound\+CRS or a Derived\+CRS/\+Projected\+CRS, or the source CRS of a Coordinate\+Operation. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_gabac35c21b9c1ee0dd95373d37d63fab6}{proj\+\_\+get\+\_\+target\+\_\+crs}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return the hub CRS of a Bound\+CRS or the target CRS of a Coordinate\+Operation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga8300cfa5fb5e080e21cb205a6fde53b3}{proj\+\_\+identify}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj, const char $\ast$auth\+\_\+name, const char $\ast$const $\ast$options, int $\ast$$\ast$out\+\_\+confidence)
\begin{DoxyCompactList}\small\item\em Identify the CRS with reference CRSs. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} \mbox{\hyperlink{group__iso19111__functions_gabf2acd272bf28deaaefcf2d090d19a0b}{proj\+\_\+get\+\_\+geoid\+\_\+models\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$auth\+\_\+name, const char $\ast$code, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Returns a list of geoid models available for that crs. \end{DoxyCompactList}\item 
void {\bfseries proj\+\_\+int\+\_\+list\+\_\+destroy} (int $\ast$list)
\begin{DoxyCompactList}\small\item\em Free an array of integer. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} \mbox{\hyperlink{group__iso19111__functions_ga49b562c6d8015209f14dfd541db745a7}{proj\+\_\+get\+\_\+authorities\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Return the list of authorities used in the database. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} \mbox{\hyperlink{group__iso19111__functions_gaffb1dff915e98bfd42588bdd9425e425}{proj\+\_\+get\+\_\+codes\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$auth\+\_\+name, \mbox{\hyperlink{group__iso19111__types_ga0acde08a3427c34e551a61f758b31c48}{PJ\+\_\+\+TYPE}} type, int allow\+\_\+deprecated)
\begin{DoxyCompactList}\small\item\em Returns the set of authority codes of the given object type. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPROJ__CELESTIAL__BODY__INFO}{PROJ\+\_\+\+CELESTIAL\+\_\+\+BODY\+\_\+\+INFO}} $\ast$$\ast$ \mbox{\hyperlink{group__iso19111__functions_gaa5e2bbaa165953cc8662df712e780ae0}{proj\+\_\+get\+\_\+celestial\+\_\+body\+\_\+list\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$auth\+\_\+name, int $\ast$out\+\_\+result\+\_\+count)
\begin{DoxyCompactList}\small\item\em Enumerate celestial bodies from the database. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga449bd02948d99d6a3aa8b78ecaade110}{proj\+\_\+celestial\+\_\+body\+\_\+list\+\_\+destroy}} (\mbox{\hyperlink{structPROJ__CELESTIAL__BODY__INFO}{PROJ\+\_\+\+CELESTIAL\+\_\+\+BODY\+\_\+\+INFO}} $\ast$$\ast$list)
\begin{DoxyCompactList}\small\item\em Destroy the result returned by \mbox{\hyperlink{group__iso19111__functions_gaa5e2bbaa165953cc8662df712e780ae0}{proj\+\_\+get\+\_\+celestial\+\_\+body\+\_\+list\+\_\+from\+\_\+database()}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPROJ__CRS__LIST__PARAMETERS}{PROJ\+\_\+\+CRS\+\_\+\+LIST\+\_\+\+PARAMETERS}} $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga4d1981585db661fee87887c3ddbb2ab0}{proj\+\_\+get\+\_\+crs\+\_\+list\+\_\+parameters\+\_\+create}} (void)
\begin{DoxyCompactList}\small\item\em Instantiate a default set of parameters to be used by proj\+\_\+get\+\_\+crs\+\_\+list(). \end{DoxyCompactList}\item 
void {\bfseries proj\+\_\+get\+\_\+crs\+\_\+list\+\_\+parameters\+\_\+destroy} (\mbox{\hyperlink{structPROJ__CRS__LIST__PARAMETERS}{PROJ\+\_\+\+CRS\+\_\+\+LIST\+\_\+\+PARAMETERS}} $\ast$params)
\begin{DoxyCompactList}\small\item\em Destroy an object returned by \mbox{\hyperlink{group__iso19111__functions_ga4d1981585db661fee87887c3ddbb2ab0}{proj\+\_\+get\+\_\+crs\+\_\+list\+\_\+parameters\+\_\+create()}} \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPROJ__CRS__INFO}{PROJ\+\_\+\+CRS\+\_\+\+INFO}} $\ast$$\ast$ \mbox{\hyperlink{group__iso19111__functions_gae560f23c0a760cf08df726517af32a6b}{proj\+\_\+get\+\_\+crs\+\_\+info\+\_\+list\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$auth\+\_\+name, const \mbox{\hyperlink{structPROJ__CRS__LIST__PARAMETERS}{PROJ\+\_\+\+CRS\+\_\+\+LIST\+\_\+\+PARAMETERS}} $\ast$params, int $\ast$out\+\_\+result\+\_\+count)
\begin{DoxyCompactList}\small\item\em Enumerate CRS objects from the database, taking into account various criteria. \end{DoxyCompactList}\item 
void {\bfseries proj\+\_\+crs\+\_\+info\+\_\+list\+\_\+destroy} (\mbox{\hyperlink{structPROJ__CRS__INFO}{PROJ\+\_\+\+CRS\+\_\+\+INFO}} $\ast$$\ast$list)
\begin{DoxyCompactList}\small\item\em Destroy the result returned by \mbox{\hyperlink{group__iso19111__functions_gae560f23c0a760cf08df726517af32a6b}{proj\+\_\+get\+\_\+crs\+\_\+info\+\_\+list\+\_\+from\+\_\+database()}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPROJ__UNIT__INFO}{PROJ\+\_\+\+UNIT\+\_\+\+INFO}} $\ast$$\ast$ \mbox{\hyperlink{group__iso19111__functions_gad9912220346fc8c2aea7170dbf62132a}{proj\+\_\+get\+\_\+units\+\_\+from\+\_\+database}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$auth\+\_\+name, const char $\ast$category, int allow\+\_\+deprecated, int $\ast$out\+\_\+result\+\_\+count)
\begin{DoxyCompactList}\small\item\em Enumerate units from the database, taking into account various criteria. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_gac92c073d80a23c8e36b0405287899e65}{proj\+\_\+unit\+\_\+list\+\_\+destroy}} (\mbox{\hyperlink{structPROJ__UNIT__INFO}{PROJ\+\_\+\+UNIT\+\_\+\+INFO}} $\ast$$\ast$list)
\begin{DoxyCompactList}\small\item\em Destroy the result returned by \mbox{\hyperlink{group__iso19111__functions_gad9912220346fc8c2aea7170dbf62132a}{proj\+\_\+get\+\_\+units\+\_\+from\+\_\+database()}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPJ__INSERT__SESSION}{PJ\+\_\+\+INSERT\+\_\+\+SESSION}} $\ast$ \mbox{\hyperlink{group__iso19111__functions_gadcafc50dcf519643cc9b360cb9943fcb}{proj\+\_\+insert\+\_\+object\+\_\+session\+\_\+create}} (PJ\+\_\+\+CONTEXT $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Starts a session for \mbox{\hyperlink{group__iso19111__functions_gacb45f9123d0d55f18e8bea8b73bf9067}{proj\+\_\+get\+\_\+insert\+\_\+statements()}} \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_gaec2ab39dea57acb2160daf089b5e3554}{proj\+\_\+insert\+\_\+object\+\_\+session\+\_\+destroy}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__INSERT__SESSION}{PJ\+\_\+\+INSERT\+\_\+\+SESSION}} $\ast$session)
\begin{DoxyCompactList}\small\item\em Stops an insertion session started with \mbox{\hyperlink{group__iso19111__functions_gadcafc50dcf519643cc9b360cb9943fcb}{proj\+\_\+insert\+\_\+object\+\_\+session\+\_\+create()}} \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} \mbox{\hyperlink{group__iso19111__functions_gacb45f9123d0d55f18e8bea8b73bf9067}{proj\+\_\+get\+\_\+insert\+\_\+statements}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__INSERT__SESSION}{PJ\+\_\+\+INSERT\+\_\+\+SESSION}} $\ast$session, const PJ $\ast$object, const char $\ast$authority, const char $\ast$code, int numeric\+\_\+codes, const char $\ast$const $\ast$allowed\+\_\+authorities, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Returns SQL statements needed to insert the passed object into the database. \end{DoxyCompactList}\item 
char $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga69b505fcea7739eed09cf4142eafadcb}{proj\+\_\+suggests\+\_\+code\+\_\+for}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$object, const char $\ast$authority, int numeric\+\_\+code, const char $\ast$const $\ast$options)
\begin{DoxyCompactList}\small\item\em Suggests a database code for the passed object. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_gadeab7bc5cb9fad8e72e056f1de6926f6}{proj\+\_\+string\+\_\+destroy}} (char $\ast$str)
\begin{DoxyCompactList}\small\item\em Free a string. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$ \mbox{\hyperlink{group__iso19111__functions_gafa1d9bb19763799dbf60cd5da298c9ef}{proj\+\_\+create\+\_\+operation\+\_\+factory\+\_\+context}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$authority)
\begin{DoxyCompactList}\small\item\em Instantiate a context for building coordinate operations between two CRS. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga84662943acd6b3913e11e77ecb773d11}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+destroy}} (\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Drops a reference on an object. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga9fd369cc4f25e52acf0a6a21d5f13c2f}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+desired\+\_\+accuracy}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, double accuracy)
\begin{DoxyCompactList}\small\item\em Set the desired accuracy of the resulting coordinate transformations. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga65a925cc0ae3098276d81f993adf3863}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+area\+\_\+of\+\_\+interest}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, double west\+\_\+lon\+\_\+degree, double south\+\_\+lat\+\_\+degree, double east\+\_\+lon\+\_\+degree, double north\+\_\+lat\+\_\+degree)
\begin{DoxyCompactList}\small\item\em Set the desired area of interest for the resulting coordinate transformations. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_gaba2802de26f9c3488145e006bfa8c288}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+area\+\_\+of\+\_\+interest\+\_\+name}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, const char $\ast$area\+\_\+name)
\begin{DoxyCompactList}\small\item\em Set the name of the desired area of interest for the resulting coordinate transformations. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_gab679a8098a87c41952adeb3822f3b4d8}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+crs\+\_\+extent\+\_\+use}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, \mbox{\hyperlink{group__iso19111__types_ga2223a725c58dab5bf93f20aecc9f03c5}{PROJ\+\_\+\+CRS\+\_\+\+EXTENT\+\_\+\+USE}} use)
\begin{DoxyCompactList}\small\item\em Set how source and target CRS extent should be used when considering if a transformation can be used (only takes effect if no area of interest is explicitly defined). \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga98fd7b9b60687e40484e7f669bb44696}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+spatial\+\_\+criterion}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, \mbox{\hyperlink{group__iso19111__types_gadfc8adff35d141ac9c3c27f457f25be1}{PROJ\+\_\+\+SPATIAL\+\_\+\+CRITERION}} criterion)
\begin{DoxyCompactList}\small\item\em Set the spatial criterion to use when comparing the area of validity of coordinate operations with the area of interest / area of validity of source and target CRS. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_gaa6d4402c5f2cf18da3269fdd4bdabd1c}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+grid\+\_\+availability\+\_\+use}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, \mbox{\hyperlink{group__iso19111__types_ga8a63b764c6b5ad06b35f7fdf81bcaa93}{PROJ\+\_\+\+GRID\+\_\+\+AVAILABILITY\+\_\+\+USE}} use)
\begin{DoxyCompactList}\small\item\em Set how grid availability is used. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga102372fec6cfaa23798bc64ecb91292c}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+use\+\_\+proj\+\_\+alternative\+\_\+grid\+\_\+names}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, int use\+PROJNames)
\begin{DoxyCompactList}\small\item\em Set whether PROJ alternative grid names should be substituted to the official authority names. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga0576d0803c28bf5d9283e4300756b9f5}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+allow\+\_\+use\+\_\+intermediate\+\_\+crs}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, \mbox{\hyperlink{group__iso19111__types_ga7c79b426947391654b6ef2bca4a83835}{PROJ\+\_\+\+INTERMEDIATE\+\_\+\+CRS\+\_\+\+USE}} use)
\begin{DoxyCompactList}\small\item\em Set whether an intermediate pivot CRS can be used for researching coordinate operations between a source and target CRS. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga6745312c4970bd4edfcc386a35590a34}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+allowed\+\_\+intermediate\+\_\+crs}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, const char $\ast$const $\ast$list\+\_\+of\+\_\+auth\+\_\+name\+\_\+codes)
\begin{DoxyCompactList}\small\item\em Restrict the potential pivot CRSs that can be used when trying to build a coordinate operation between two CRS that have no direct operation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga58a6a250b7c29d4f6efb023fd91dabf2}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+discard\+\_\+superseded}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, int discard)
\begin{DoxyCompactList}\small\item\em Set whether transformations that are superseded (but not deprecated) should be discarded. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_ga94cddeb4cf048dc9efdab60e35c0230a}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+allow\+\_\+ballpark\+\_\+transformations}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$factory\+\_\+ctx, int allow)
\begin{DoxyCompactList}\small\item\em Set whether ballpark transformations are allowed. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$ \mbox{\hyperlink{group__iso19111__functions_gab5ef57e9bd9bff1341d05d56d1c5a8e2}{proj\+\_\+create\+\_\+operations}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$source\+\_\+crs, const PJ $\ast$target\+\_\+crs, const \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$operation\+Context)
\begin{DoxyCompactList}\small\item\em Find a list of Coordinate\+Operation from source\+\_\+crs to target\+\_\+crs. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga645fa2f0ff64dcbf5cd4a0361d306014}{proj\+\_\+list\+\_\+get\+\_\+count}} (const \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$result)
\begin{DoxyCompactList}\small\item\em Return the number of objects in the result set. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_gac831ee02c8cdef03ced2ec07abcf07d3}{proj\+\_\+list\+\_\+get}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$result, int index)
\begin{DoxyCompactList}\small\item\em Return an object from the result set. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__iso19111__functions_gaa1274c437a786f9064556c139d689d71}{proj\+\_\+list\+\_\+destroy}} (\mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$result)
\begin{DoxyCompactList}\small\item\em Drops a reference on the result set. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga61bd60fa5f9c8a2f6a3443ddb2a5b10a}{proj\+\_\+get\+\_\+suggested\+\_\+operation}} (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$operations, PJ\+\_\+\+DIRECTION direction, PJ\+\_\+\+COORD coord)
\item 
int \mbox{\hyperlink{group__iso19111__functions_gab0bf9c7247a50e54502f3977f6c975ed}{proj\+\_\+crs\+\_\+is\+\_\+derived}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs)
\begin{DoxyCompactList}\small\item\em Returns whether a CRS is a derived CRS. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga2405cdec5fe6b121ff6f8d9bea358b07}{proj\+\_\+crs\+\_\+get\+\_\+geodetic\+\_\+crs}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs)
\begin{DoxyCompactList}\small\item\em Get the geodetic\+CRS / geographic\+CRS from a CRS. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga1d79bd02c7d38deba48825481c1ff203}{proj\+\_\+crs\+\_\+get\+\_\+horizontal\+\_\+datum}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs)
\begin{DoxyCompactList}\small\item\em Get the horizontal datum from a CRS. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga212d4b01b4a05ace104884535c7c6917}{proj\+\_\+crs\+\_\+get\+\_\+sub\+\_\+crs}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs, int index)
\begin{DoxyCompactList}\small\item\em Get a CRS component from a Compound\+CRS. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga62b01453e51ac619bddc553067186ca1}{proj\+\_\+crs\+\_\+get\+\_\+datum}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs)
\begin{DoxyCompactList}\small\item\em Returns the datum of a Single\+CRS. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga7f3d16e65d6ef1688646e8cea432ca48}{proj\+\_\+crs\+\_\+get\+\_\+datum\+\_\+ensemble}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs)
\begin{DoxyCompactList}\small\item\em Returns the datum ensemble of a Single\+CRS. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_gaf5a7272e379e5abd367a64c426a9d414}{proj\+\_\+crs\+\_\+get\+\_\+datum\+\_\+forced}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs)
\begin{DoxyCompactList}\small\item\em Returns a datum for a Single\+CRS. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gadb56c2288b443b0fea664b4361d79d46}{proj\+\_\+datum\+\_\+ensemble\+\_\+get\+\_\+member\+\_\+count}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$datum\+\_\+ensemble)
\begin{DoxyCompactList}\small\item\em Returns the number of members of a datum ensemble. \end{DoxyCompactList}\item 
double \mbox{\hyperlink{group__iso19111__functions_ga28ea9a6d171d6f9623a995bc04f862de}{proj\+\_\+datum\+\_\+ensemble\+\_\+get\+\_\+accuracy}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$datum\+\_\+ensemble)
\begin{DoxyCompactList}\small\item\em Returns the positional accuracy of the datum ensemble. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_gabe85eca25ee77a56f0a4b7654d269fed}{proj\+\_\+datum\+\_\+ensemble\+\_\+get\+\_\+member}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$datum\+\_\+ensemble, int member\+\_\+index)
\begin{DoxyCompactList}\small\item\em Returns a member from a datum ensemble. \end{DoxyCompactList}\item 
double \mbox{\hyperlink{group__iso19111__functions_ga42234041d803ed80cc340e35bd3bb6b3}{proj\+\_\+dynamic\+\_\+datum\+\_\+get\+\_\+frame\+\_\+reference\+\_\+epoch}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$datum)
\begin{DoxyCompactList}\small\item\em Returns the frame reference epoch of a dynamic geodetic or vertical reference frame. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga8cb1f40bfa518906a1ce8fa42b3b2678}{proj\+\_\+crs\+\_\+get\+\_\+coordinate\+\_\+system}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs)
\begin{DoxyCompactList}\small\item\em Returns the coordinate system of a Single\+CRS. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__iso19111__types_ga309b520b438e2c6d150b2e635a4afdf6}{PJ\+\_\+\+COORDINATE\+\_\+\+SYSTEM\+\_\+\+TYPE}} \mbox{\hyperlink{group__iso19111__functions_gae725f3de6682e038deaf408e7e0efe25}{proj\+\_\+cs\+\_\+get\+\_\+type}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$cs)
\begin{DoxyCompactList}\small\item\em Returns the type of the coordinate system. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga6e3d7224db5759a7cc0e186c63a06203}{proj\+\_\+cs\+\_\+get\+\_\+axis\+\_\+count}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$cs)
\begin{DoxyCompactList}\small\item\em Returns the number of axis of the coordinate system. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga798d8fb70377cee44abd97996d39c50c}{proj\+\_\+cs\+\_\+get\+\_\+axis\+\_\+info}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$cs, int index, const char $\ast$$\ast$out\+\_\+name, const char $\ast$$\ast$out\+\_\+abbrev, const char $\ast$$\ast$out\+\_\+direction, double $\ast$out\+\_\+unit\+\_\+conv\+\_\+factor, const char $\ast$$\ast$out\+\_\+unit\+\_\+name, const char $\ast$$\ast$out\+\_\+unit\+\_\+auth\+\_\+name, const char $\ast$$\ast$out\+\_\+unit\+\_\+code)
\begin{DoxyCompactList}\small\item\em Returns information on an axis. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga1b9e88a9919ef4da2ba49e69a636df16}{proj\+\_\+get\+\_\+ellipsoid}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the ellipsoid from a CRS or a Geodetic\+Reference\+Frame. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gacc1402e3ce480e0618da4c615d5c3145}{proj\+\_\+ellipsoid\+\_\+get\+\_\+parameters}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$ellipsoid, double $\ast$out\+\_\+semi\+\_\+major\+\_\+metre, double $\ast$out\+\_\+semi\+\_\+minor\+\_\+metre, int $\ast$out\+\_\+is\+\_\+semi\+\_\+minor\+\_\+computed, double $\ast$out\+\_\+inv\+\_\+flattening)
\begin{DoxyCompactList}\small\item\em Return ellipsoid parameters. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga0fcd43938ad966855bbe2f628dfd43fc}{proj\+\_\+get\+\_\+celestial\+\_\+body\+\_\+name}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the name of the celestial body of this object. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga8d0e294b0a21514d0ed763428d7cffb8}{proj\+\_\+get\+\_\+prime\+\_\+meridian}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the prime meridian of a CRS or a Geodetic\+Reference\+Frame. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga14a20c449ab108771eed62487b130829}{proj\+\_\+prime\+\_\+meridian\+\_\+get\+\_\+parameters}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$prime\+\_\+meridian, double $\ast$out\+\_\+longitude, double $\ast$out\+\_\+unit\+\_\+conv\+\_\+factor, const char $\ast$$\ast$out\+\_\+unit\+\_\+name)
\begin{DoxyCompactList}\small\item\em Return prime meridian parameters. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga3dffb8f90a78a3dc6cfb0586bd1c8e0a}{proj\+\_\+crs\+\_\+get\+\_\+coordoperation}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$crs)
\begin{DoxyCompactList}\small\item\em Return the Conversion of a Derived\+CRS (such as a Projected\+CRS), or the Transformation from the base\+CRS to the hub\+CRS of a Bound\+CRS. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga3e3cd827a8ed1d9d69701fe52d4c9ff2}{proj\+\_\+coordoperation\+\_\+get\+\_\+method\+\_\+info}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation, const char $\ast$$\ast$out\+\_\+method\+\_\+name, const char $\ast$$\ast$out\+\_\+method\+\_\+auth\+\_\+name, const char $\ast$$\ast$out\+\_\+method\+\_\+code)
\begin{DoxyCompactList}\small\item\em Return information on the operation method of the Single\+Operation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gaac33865ae52cf66babc2f24f6748a606}{proj\+\_\+coordoperation\+\_\+is\+\_\+instantiable}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation)
\begin{DoxyCompactList}\small\item\em Return whether a coordinate operation can be instantiated as a PROJ pipeline, checking in particular that referenced grids are available. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gaa0804ba270694460a2d315ff44219ca4}{proj\+\_\+coordoperation\+\_\+has\+\_\+ballpark\+\_\+transformation}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation)
\begin{DoxyCompactList}\small\item\em Return whether a coordinate operation has a \char`\"{}ballpark\char`\"{} transformation, that is a very approximate one, due to lack of more accurate transformations. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga73bd01a3d5ea9cf38d419f9f4182f4f4}{proj\+\_\+coordoperation\+\_\+get\+\_\+param\+\_\+count}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation)
\begin{DoxyCompactList}\small\item\em Return the number of parameters of a Single\+Operation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga419f328752102122e7299469a985ddfa}{proj\+\_\+coordoperation\+\_\+get\+\_\+param\+\_\+index}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Return the index of a parameter of a Single\+Operation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gaa47fc7f7c959d1b704bc00c5d7c5f16a}{proj\+\_\+coordoperation\+\_\+get\+\_\+param}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation, int index, const char $\ast$$\ast$out\+\_\+name, const char $\ast$$\ast$out\+\_\+auth\+\_\+name, const char $\ast$$\ast$out\+\_\+code, double $\ast$out\+\_\+value, const char $\ast$$\ast$out\+\_\+value\+\_\+string, double $\ast$out\+\_\+unit\+\_\+conv\+\_\+factor, const char $\ast$$\ast$out\+\_\+unit\+\_\+name, const char $\ast$$\ast$out\+\_\+unit\+\_\+auth\+\_\+name, const char $\ast$$\ast$out\+\_\+unit\+\_\+code, const char $\ast$$\ast$out\+\_\+unit\+\_\+category)
\begin{DoxyCompactList}\small\item\em Return a parameter of a Single\+Operation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gaa2d8da513d8c48235eb63571533b694a}{proj\+\_\+coordoperation\+\_\+get\+\_\+grid\+\_\+used\+\_\+count}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation)
\begin{DoxyCompactList}\small\item\em Return the number of grids used by a Coordinate\+Operation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gadfb7e8c628a45e56bef25ef7a7defd6d}{proj\+\_\+coordoperation\+\_\+get\+\_\+grid\+\_\+used}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation, int index, const char $\ast$$\ast$out\+\_\+short\+\_\+name, const char $\ast$$\ast$out\+\_\+full\+\_\+name, const char $\ast$$\ast$out\+\_\+package\+\_\+name, const char $\ast$$\ast$out\+\_\+url, int $\ast$out\+\_\+direct\+\_\+download, int $\ast$out\+\_\+open\+\_\+license, int $\ast$out\+\_\+available)
\begin{DoxyCompactList}\small\item\em Return a parameter of a Single\+Operation. \end{DoxyCompactList}\item 
double \mbox{\hyperlink{group__iso19111__functions_ga28abd93c89d4266142c4ddca5c242d46}{proj\+\_\+coordoperation\+\_\+get\+\_\+accuracy}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return the accuracy (in metre) of a coordinate operation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_ga1935305cbaaa0b35f21d890e56192847}{proj\+\_\+coordoperation\+\_\+get\+\_\+towgs84\+\_\+values}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$coordoperation, double $\ast$out\+\_\+values, int value\+\_\+count, int emit\+\_\+error\+\_\+if\+\_\+incompatible)
\begin{DoxyCompactList}\small\item\em Return the parameters of a Helmert transformation as WKT1 TOWGS84 values. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_ga9a1c751564fa5c4b1846af39dbd7105b}{proj\+\_\+coordoperation\+\_\+create\+\_\+inverse}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$obj)
\begin{DoxyCompactList}\small\item\em Returns a PJ$\ast$ coordinate operation object which represents the inverse operation of the specified coordinate operation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__iso19111__functions_gace4d7b4541748dbfb958f839bfe61fa9}{proj\+\_\+concatoperation\+\_\+get\+\_\+step\+\_\+count}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$concatoperation)
\begin{DoxyCompactList}\small\item\em Returns the number of steps of a concatenated operation. \end{DoxyCompactList}\item 
PJ $\ast$ \mbox{\hyperlink{group__iso19111__functions_gaed64a00aefa340d14389adb1390d1335}{proj\+\_\+concatoperation\+\_\+get\+\_\+step}} (PJ\+\_\+\+CONTEXT $\ast$ctx, const PJ $\ast$concatoperation, int i\+\_\+step)
\begin{DoxyCompactList}\small\item\em Returns a step of a concatenated operation. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
C API new generation 

\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{proj_8h_ac24350a2ad399a1a52928654cc7a5c44}\label{proj_8h_ac24350a2ad399a1a52928654cc7a5c44}} 
\index{proj.h@{proj.h}!PROJ\_FILE\_API@{PROJ\_FILE\_API}}
\index{PROJ\_FILE\_API@{PROJ\_FILE\_API}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{PROJ\_FILE\_API}{PROJ\_FILE\_API}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structPROJ__FILE__API}{PROJ\+\_\+\+FILE\+\_\+\+API}} \mbox{\hyperlink{structPROJ__FILE__API}{PROJ\+\_\+\+FILE\+\_\+\+API}}}

File API callbacks \mbox{\Hypertarget{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}\label{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}} 
\index{proj.h@{proj.h}!PROJ\_FILE\_HANDLE@{PROJ\_FILE\_HANDLE}}
\index{PROJ\_FILE\_HANDLE@{PROJ\_FILE\_HANDLE}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{PROJ\_FILE\_HANDLE}{PROJ\_FILE\_HANDLE}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}} \mbox{\hyperlink{proj_8h_a576ca78c0ce0c613cc360f9c0843f788}{PROJ\+\_\+\+FILE\+\_\+\+HANDLE}}}

Opaque structure for PROJ for a file handle. Implementations might cast it to their structure/class of choice. \mbox{\Hypertarget{proj_8h_aaf732c562f9aff74e49302f1d15e616b}\label{proj_8h_aaf732c562f9aff74e49302f1d15e616b}} 
\index{proj.h@{proj.h}!proj\_network\_close\_cbk\_type@{proj\_network\_close\_cbk\_type}}
\index{proj\_network\_close\_cbk\_type@{proj\_network\_close\_cbk\_type}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_network\_close\_cbk\_type}{proj\_network\_close\_cbk\_type}}
{\footnotesize\ttfamily typedef void($\ast$ proj\+\_\+network\+\_\+close\+\_\+cbk\+\_\+type) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} $\ast$handle, void $\ast$user\+\_\+data)}

Network access\+: close callback \mbox{\Hypertarget{proj_8h_a5adb8137f1e0b8ccb9dde5aca10ce2d0}\label{proj_8h_a5adb8137f1e0b8ccb9dde5aca10ce2d0}} 
\index{proj.h@{proj.h}!proj\_network\_get\_header\_value\_cbk\_type@{proj\_network\_get\_header\_value\_cbk\_type}}
\index{proj\_network\_get\_header\_value\_cbk\_type@{proj\_network\_get\_header\_value\_cbk\_type}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_network\_get\_header\_value\_cbk\_type}{proj\_network\_get\_header\_value\_cbk\_type}}
{\footnotesize\ttfamily typedef const char $\ast$($\ast$ proj\+\_\+network\+\_\+get\+\_\+header\+\_\+value\+\_\+cbk\+\_\+type) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} $\ast$handle, const char $\ast$header\+\_\+name, void $\ast$user\+\_\+data)}

Network access\+: get HTTP headers \mbox{\Hypertarget{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}\label{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}} 
\index{proj.h@{proj.h}!PROJ\_NETWORK\_HANDLE@{PROJ\_NETWORK\_HANDLE}}
\index{PROJ\_NETWORK\_HANDLE@{PROJ\_NETWORK\_HANDLE}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{PROJ\_NETWORK\_HANDLE}{PROJ\_NETWORK\_HANDLE}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}}}

Opaque structure for PROJ for a network handle. Implementations might cast it to their structure/class of choice. \mbox{\Hypertarget{proj_8h_acb853fa9db80d0d8d898a485e8376cc5}\label{proj_8h_acb853fa9db80d0d8d898a485e8376cc5}} 
\index{proj.h@{proj.h}!proj\_network\_open\_cbk\_type@{proj\_network\_open\_cbk\_type}}
\index{proj\_network\_open\_cbk\_type@{proj\_network\_open\_cbk\_type}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_network\_open\_cbk\_type}{proj\_network\_open\_cbk\_type}}
{\footnotesize\ttfamily typedef \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} $\ast$($\ast$ proj\+\_\+network\+\_\+open\+\_\+cbk\+\_\+type) (PJ\+\_\+\+CONTEXT $\ast$ctx, const char $\ast$url, unsigned long long offset, size\+\_\+t size\+\_\+to\+\_\+read, void $\ast$buffer, size\+\_\+t $\ast$out\+\_\+size\+\_\+read, size\+\_\+t error\+\_\+string\+\_\+max\+\_\+size, char $\ast$out\+\_\+error\+\_\+string, void $\ast$user\+\_\+data)}

Network access\+: open callback

Should try to read the size\+\_\+to\+\_\+read first bytes at the specified offset of the file given by URL url, and write them to buffer. $\ast$out\+\_\+size\+\_\+read should be updated with the actual amount of bytes read (== size\+\_\+to\+\_\+read if the file is larger than size\+\_\+to\+\_\+read). During this read, the implementation should make sure to store the HTTP headers from the server response to be able to respond to proj\+\_\+network\+\_\+get\+\_\+header\+\_\+value\+\_\+cbk\+\_\+type callback.

error\+\_\+string\+\_\+max\+\_\+size should be the maximum size that can be written into the out\+\_\+error\+\_\+string buffer (including terminating nul character).

\begin{DoxyReturn}{Returns}
a non-\/\+NULL opaque handle in case of success. 
\end{DoxyReturn}
\mbox{\Hypertarget{proj_8h_a560064e2b97a70a24a0d420c7881ade1}\label{proj_8h_a560064e2b97a70a24a0d420c7881ade1}} 
\index{proj.h@{proj.h}!proj\_network\_read\_range\_type@{proj\_network\_read\_range\_type}}
\index{proj\_network\_read\_range\_type@{proj\_network\_read\_range\_type}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_network\_read\_range\_type}{proj\_network\_read\_range\_type}}
{\footnotesize\ttfamily typedef size\+\_\+t($\ast$ proj\+\_\+network\+\_\+read\+\_\+range\+\_\+type) (PJ\+\_\+\+CONTEXT $\ast$ctx, \mbox{\hyperlink{proj_8h_a662f9a829bc5d35df6729ce7d4fecb04}{PROJ\+\_\+\+NETWORK\+\_\+\+HANDLE}} $\ast$handle, unsigned long long offset, size\+\_\+t size\+\_\+to\+\_\+read, void $\ast$buffer, size\+\_\+t error\+\_\+string\+\_\+max\+\_\+size, char $\ast$out\+\_\+error\+\_\+string, void $\ast$user\+\_\+data)}

Network access\+: read range

Read size\+\_\+to\+\_\+read bytes from handle, starting at offset, into buffer. During this read, the implementation should make sure to store the HTTP headers from the server response to be able to respond to proj\+\_\+network\+\_\+get\+\_\+header\+\_\+value\+\_\+cbk\+\_\+type callback.

error\+\_\+string\+\_\+max\+\_\+size should be the maximum size that can be written into the out\+\_\+error\+\_\+string buffer (including terminating nul character).

\begin{DoxyReturn}{Returns}
the number of bytes actually read (0 in case of error) 
\end{DoxyReturn}
\mbox{\Hypertarget{proj_8h_a60d7844c1a5946a0442a70919ad2db3b}\label{proj_8h_a60d7844c1a5946a0442a70919ad2db3b}} 
\index{proj.h@{proj.h}!PROJ\_OPEN\_ACCESS@{PROJ\_OPEN\_ACCESS}}
\index{PROJ\_OPEN\_ACCESS@{PROJ\_OPEN\_ACCESS}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{PROJ\_OPEN\_ACCESS}{PROJ\_OPEN\_ACCESS}}
{\footnotesize\ttfamily typedef enum \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS}} \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS}}}

Open access / mode 

\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}\label{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}} 
\index{proj.h@{proj.h}!PROJ\_OPEN\_ACCESS@{PROJ\_OPEN\_ACCESS}}
\index{PROJ\_OPEN\_ACCESS@{PROJ\_OPEN\_ACCESS}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{PROJ\_OPEN\_ACCESS}{PROJ\_OPEN\_ACCESS}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{proj_8h_ad466f4e5535c25a803fa10f5ec47f997}{PROJ\+\_\+\+OPEN\+\_\+\+ACCESS}}}

Open access / mode \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{PROJ\_OPEN\_ACCESS\_READ\_ONLY@{PROJ\_OPEN\_ACCESS\_READ\_ONLY}!proj.h@{proj.h}}\index{proj.h@{proj.h}!PROJ\_OPEN\_ACCESS\_READ\_ONLY@{PROJ\_OPEN\_ACCESS\_READ\_ONLY}}}\mbox{\Hypertarget{proj_8h_ad466f4e5535c25a803fa10f5ec47f997af2ba80849abee993eb10a6ffe8876ae7}\label{proj_8h_ad466f4e5535c25a803fa10f5ec47f997af2ba80849abee993eb10a6ffe8876ae7}} 
PROJ\+\_\+\+OPEN\+\_\+\+ACCESS\+\_\+\+READ\+\_\+\+ONLY&Read-\/only access. Equivalent to \char`\"{}rb\char`\"{} \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROJ\_OPEN\_ACCESS\_READ\_UPDATE@{PROJ\_OPEN\_ACCESS\_READ\_UPDATE}!proj.h@{proj.h}}\index{proj.h@{proj.h}!PROJ\_OPEN\_ACCESS\_READ\_UPDATE@{PROJ\_OPEN\_ACCESS\_READ\_UPDATE}}}\mbox{\Hypertarget{proj_8h_ad466f4e5535c25a803fa10f5ec47f997a81914ec3374ae193ca390645ebcc909d}\label{proj_8h_ad466f4e5535c25a803fa10f5ec47f997a81914ec3374ae193ca390645ebcc909d}} 
PROJ\+\_\+\+OPEN\+\_\+\+ACCESS\+\_\+\+READ\+\_\+\+UPDATE&Read-\/update access. File should be created if not existing. Equivalent to \char`\"{}r+b\char`\"{} \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROJ\_OPEN\_ACCESS\_CREATE@{PROJ\_OPEN\_ACCESS\_CREATE}!proj.h@{proj.h}}\index{proj.h@{proj.h}!PROJ\_OPEN\_ACCESS\_CREATE@{PROJ\_OPEN\_ACCESS\_CREATE}}}\mbox{\Hypertarget{proj_8h_ad466f4e5535c25a803fa10f5ec47f997ad0d7748c3190392d10e4a6209b64f470}\label{proj_8h_ad466f4e5535c25a803fa10f5ec47f997ad0d7748c3190392d10e4a6209b64f470}} 
PROJ\+\_\+\+OPEN\+\_\+\+ACCESS\+\_\+\+CREATE&Create access. File should be truncated to 0-\/byte if already existing. Equivalent to \char`\"{}w+b\char`\"{} \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{proj_8h_a6413de983eb94a1a7d356efce66c36ff}\label{proj_8h_a6413de983eb94a1a7d356efce66c36ff}} 
\index{proj.h@{proj.h}!proj\_context\_get\_url\_endpoint@{proj\_context\_get\_url\_endpoint}}
\index{proj\_context\_get\_url\_endpoint@{proj\_context\_get\_url\_endpoint}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_get\_url\_endpoint()}{proj\_context\_get\_url\_endpoint()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+context\+\_\+get\+\_\+url\+\_\+endpoint (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx }\end{DoxyParamCaption})}

Get the URL endpoint to query for remote grids.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Endpoint URL. The returned pointer would be invalidated by a later call to \mbox{\hyperlink{proj_8h_a2e438ab67fe28502bb447cc48af913ca}{proj\+\_\+context\+\_\+set\+\_\+url\+\_\+endpoint()}} 
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+1 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_af4a5207c142de7c57e41d3f242cb3152}\label{proj_8h_af4a5207c142de7c57e41d3f242cb3152}} 
\index{proj.h@{proj.h}!proj\_context\_get\_user\_writable\_directory@{proj\_context\_get\_user\_writable\_directory}}
\index{proj\_context\_get\_user\_writable\_directory@{proj\_context\_get\_user\_writable\_directory}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_get\_user\_writable\_directory()}{proj\_context\_get\_user\_writable\_directory()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+context\+\_\+get\+\_\+user\+\_\+writable\+\_\+directory (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{int}]{create }\end{DoxyParamCaption})}

Get the PROJ user writable directory for datumgrid files.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em create} & If set to TRUE, create the directory if it does not exist already. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The path to the PROJ user writable directory. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+1 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a2b7967c55ae6edd5b52c417a6183c801}\label{proj_8h_a2b7967c55ae6edd5b52c417a6183c801}} 
\index{proj.h@{proj.h}!proj\_context\_is\_network\_enabled@{proj\_context\_is\_network\_enabled}}
\index{proj\_context\_is\_network\_enabled@{proj\_context\_is\_network\_enabled}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_is\_network\_enabled()}{proj\_context\_is\_network\_enabled()}}
{\footnotesize\ttfamily int proj\+\_\+context\+\_\+is\+\_\+network\+\_\+enabled (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx }\end{DoxyParamCaption})}

Return if network access is enabled.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if network access has been enabled 
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_ac46b8530cc786c7e9675a9ab4e55f9d4}\label{proj_8h_ac46b8530cc786c7e9675a9ab4e55f9d4}} 
\index{proj.h@{proj.h}!proj\_context\_set\_ca\_bundle\_path@{proj\_context\_set\_ca\_bundle\_path}}
\index{proj\_context\_set\_ca\_bundle\_path@{proj\_context\_set\_ca\_bundle\_path}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_ca\_bundle\_path()}{proj\_context\_set\_ca\_bundle\_path()}}
{\footnotesize\ttfamily void proj\+\_\+context\+\_\+set\+\_\+ca\+\_\+bundle\+\_\+path (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{path }\end{DoxyParamCaption})}



Sets CA Bundle path. 

Those CA Bundle path will be used by PROJ when curl and PROJ\+\_\+\+NETWORK are enabled.

If set on the default context, they will be inherited by contexts created later.

The path should be encoded in UTF-\/8.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for the default context. \\
\hline
{\em path} & Path. May be NULL.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
PROJ 7.\+2 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a9a771bc53b785bfe6a0f658f588d11ec}\label{proj_8h_a9a771bc53b785bfe6a0f658f588d11ec}} 
\index{proj.h@{proj.h}!proj\_context\_set\_enable\_network@{proj\_context\_set\_enable\_network}}
\index{proj\_context\_set\_enable\_network@{proj\_context\_set\_enable\_network}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_enable\_network()}{proj\_context\_set\_enable\_network()}}
{\footnotesize\ttfamily int proj\+\_\+context\+\_\+set\+\_\+enable\+\_\+network (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{int}]{enable }\end{DoxyParamCaption})}

Enable or disable network access.

This overrides the default endpoint in the PROJ configuration file or with the PROJ\+\_\+\+NETWORK environment variable.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em enable} & TRUE if network access is allowed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if network access is possible. That is either libcurl is available, or an alternate interface has been set. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a0d19deb424deca88cd90a5429f2adbd7}\label{proj_8h_a0d19deb424deca88cd90a5429f2adbd7}} 
\index{proj.h@{proj.h}!proj\_context\_set\_file\_finder@{proj\_context\_set\_file\_finder}}
\index{proj\_context\_set\_file\_finder@{proj\_context\_set\_file\_finder}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_file\_finder()}{proj\_context\_set\_file\_finder()}}
{\footnotesize\ttfamily void proj\+\_\+context\+\_\+set\+\_\+file\+\_\+finder (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{proj\+\_\+file\+\_\+finder}]{finder,  }\item[{void $\ast$}]{user\+\_\+data }\end{DoxyParamCaption})}



Assign a file finder callback to a context. 

This callback will be used whenever PROJ must open one of its resource files (proj.\+db database, grids, etc...)

The callback will be called with the context currently in use at the moment where it is used (not necessarily the one provided during this call), and with the provided user\+\_\+data (which may be NULL). The user\+\_\+data must remain valid during the whole lifetime of the context.

A finder set on the default context will be inherited by contexts created later.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for the default context. \\
\hline
{\em finder} & Finder callback. May be NULL \\
\hline
{\em user\+\_\+data} & User data provided to the finder callback. May be NULL.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
PROJ 6.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_ad8419df443b60938d928d7250f3e1c54}\label{proj_8h_ad8419df443b60938d928d7250f3e1c54}} 
\index{proj.h@{proj.h}!proj\_context\_set\_fileapi@{proj\_context\_set\_fileapi}}
\index{proj\_context\_set\_fileapi@{proj\_context\_set\_fileapi}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_fileapi()}{proj\_context\_set\_fileapi()}}
{\footnotesize\ttfamily int proj\+\_\+context\+\_\+set\+\_\+fileapi (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const \mbox{\hyperlink{structPROJ__FILE__API}{PROJ\+\_\+\+FILE\+\_\+\+API}} $\ast$}]{fileapi,  }\item[{void $\ast$}]{user\+\_\+data }\end{DoxyParamCaption})}

Set a file API

All callbacks should be provided (non NULL pointers). If read-\/only usage is intended, then the callbacks might have a dummy implementation.

\begin{DoxyNote}{Note}
Those callbacks will not be used for SQLite3 database access. If custom I/O is desired for that, then \mbox{\hyperlink{proj_8h_aaeeb31bf23fb19d63dd5f89c56490ebd}{proj\+\_\+context\+\_\+set\+\_\+sqlite3\+\_\+vfs\+\_\+name()}} should be used.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em fileapi} & Pointer to file API structure (content will be copied). \\
\hline
{\em user\+\_\+data} & Arbitrary pointer provided by the user, and passed to the above callbacks. May be NULL. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a4cf6f08b647734f2681c7409b192672e}\label{proj_8h_a4cf6f08b647734f2681c7409b192672e}} 
\index{proj.h@{proj.h}!proj\_context\_set\_network\_callbacks@{proj\_context\_set\_network\_callbacks}}
\index{proj\_context\_set\_network\_callbacks@{proj\_context\_set\_network\_callbacks}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_network\_callbacks()}{proj\_context\_set\_network\_callbacks()}}
{\footnotesize\ttfamily int proj\+\_\+context\+\_\+set\+\_\+network\+\_\+callbacks (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{proj_8h_acb853fa9db80d0d8d898a485e8376cc5}{proj\+\_\+network\+\_\+open\+\_\+cbk\+\_\+type}}}]{open\+\_\+cbk,  }\item[{\mbox{\hyperlink{proj_8h_aaf732c562f9aff74e49302f1d15e616b}{proj\+\_\+network\+\_\+close\+\_\+cbk\+\_\+type}}}]{close\+\_\+cbk,  }\item[{\mbox{\hyperlink{proj_8h_a5adb8137f1e0b8ccb9dde5aca10ce2d0}{proj\+\_\+network\+\_\+get\+\_\+header\+\_\+value\+\_\+cbk\+\_\+type}}}]{get\+\_\+header\+\_\+value\+\_\+cbk,  }\item[{\mbox{\hyperlink{proj_8h_a560064e2b97a70a24a0d420c7881ade1}{proj\+\_\+network\+\_\+read\+\_\+range\+\_\+type}}}]{read\+\_\+range\+\_\+cbk,  }\item[{void $\ast$}]{user\+\_\+data }\end{DoxyParamCaption})}

Define a custom set of callbacks for network access.

All callbacks should be provided (non NULL pointers).


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em open\+\_\+cbk} & Callback to open a remote file given its URL \\
\hline
{\em close\+\_\+cbk} & Callback to close a remote file. \\
\hline
{\em get\+\_\+header\+\_\+value\+\_\+cbk} & Callback to get HTTP headers \\
\hline
{\em read\+\_\+range\+\_\+cbk} & Callback to read a range of bytes inside a remote file. \\
\hline
{\em user\+\_\+data} & Arbitrary pointer provided by the user, and passed to the above callbacks. May be NULL. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_afe6b85648984b25309b399c68716f914}\label{proj_8h_afe6b85648984b25309b399c68716f914}} 
\index{proj.h@{proj.h}!proj\_context\_set\_search\_paths@{proj\_context\_set\_search\_paths}}
\index{proj\_context\_set\_search\_paths@{proj\_context\_set\_search\_paths}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_search\_paths()}{proj\_context\_set\_search\_paths()}}
{\footnotesize\ttfamily void proj\+\_\+context\+\_\+set\+\_\+search\+\_\+paths (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{int}]{count\+\_\+paths,  }\item[{const char $\ast$const $\ast$}]{paths }\end{DoxyParamCaption})}



Sets search paths. 

Those search paths will be used whenever PROJ must open one of its resource files (proj.\+db database, grids, etc...)

If set on the default context, they will be inherited by contexts created later.

Starting with PROJ 7.\+0, the path(s) should be encoded in UTF-\/8.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for the default context. \\
\hline
{\em count\+\_\+paths} & Number of paths. 0 if paths == NULL. \\
\hline
{\em paths} & Paths. May be NULL.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
PROJ 6.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_aaeeb31bf23fb19d63dd5f89c56490ebd}\label{proj_8h_aaeeb31bf23fb19d63dd5f89c56490ebd}} 
\index{proj.h@{proj.h}!proj\_context\_set\_sqlite3\_vfs\_name@{proj\_context\_set\_sqlite3\_vfs\_name}}
\index{proj\_context\_set\_sqlite3\_vfs\_name@{proj\_context\_set\_sqlite3\_vfs\_name}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_sqlite3\_vfs\_name()}{proj\_context\_set\_sqlite3\_vfs\_name()}}
{\footnotesize\ttfamily void proj\+\_\+context\+\_\+set\+\_\+sqlite3\+\_\+vfs\+\_\+name (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}

Set the name of a custom SQLite3 VFS.

This should be a valid SQLite3 VFS name, such as the one passed to the sqlite3\+\_\+vfs\+\_\+register(). See \href{https://www.sqlite.org/vfs.html}{\texttt{ https\+://www.\+sqlite.\+org/vfs.\+html}}

It will be used to read proj.\+db or create\&access the cache.\+db file in the PROJ user writable directory.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em name} & SQLite3 VFS name. If NULL is passed, default implementation by SQLite will be used. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a2e438ab67fe28502bb447cc48af913ca}\label{proj_8h_a2e438ab67fe28502bb447cc48af913ca}} 
\index{proj.h@{proj.h}!proj\_context\_set\_url\_endpoint@{proj\_context\_set\_url\_endpoint}}
\index{proj\_context\_set\_url\_endpoint@{proj\_context\_set\_url\_endpoint}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_url\_endpoint()}{proj\_context\_set\_url\_endpoint()}}
{\footnotesize\ttfamily void proj\+\_\+context\+\_\+set\+\_\+url\+\_\+endpoint (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{url }\end{DoxyParamCaption})}

Define the URL endpoint to query for remote grids.

This overrides the default endpoint in the PROJ configuration file or with the PROJ\+\_\+\+NETWORK\+\_\+\+ENDPOINT environment variable.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em url} & Endpoint URL. Must NOT be NULL. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_aa17c90464d2c7d325d67493911b1a76b}\label{proj_8h_aa17c90464d2c7d325d67493911b1a76b}} 
\index{proj.h@{proj.h}!proj\_download\_file@{proj\_download\_file}}
\index{proj\_download\_file@{proj\_download\_file}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_download\_file()}{proj\_download\_file()}}
{\footnotesize\ttfamily int proj\+\_\+download\+\_\+file (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{url\+\_\+or\+\_\+filename,  }\item[{int}]{ignore\+\_\+ttl\+\_\+setting,  }\item[{int($\ast$)(PJ\+\_\+\+CONTEXT $\ast$, double pct, void $\ast$user\+\_\+data)}]{progress\+\_\+cbk,  }\item[{void $\ast$}]{user\+\_\+data }\end{DoxyParamCaption})}

Download a file in the PROJ user-\/writable directory.

The file will only be downloaded if it does not exist yet in the user-\/writable directory, or if it is determined that a more recent version exists. To determine if a more recent version exists, PROJ will use the \char`\"{}downloaded\+\_\+file\+\_\+properties\char`\"{} table of its grid cache database. Consequently files manually placed in the user-\/writable directory without using this function would be considered as non-\/existing/obsolete and would be unconditionally downloaded again.

This function can only be used if networking is enabled, and either the default curl network API or a custom one have been installed.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em url\+\_\+or\+\_\+filename} & URL or filename (without directory component) \\
\hline
{\em ignore\+\_\+ttl\+\_\+setting} & If set to FALSE, PROJ will only check the recentness of an already downloaded file, if the delay between the last time it has been verified and the current time exceeds the TTL setting. This can save network accesses. If set to TRUE, PROJ will unconditionally check from the server the recentness of the file. \\
\hline
{\em progress\+\_\+cbk} & Progress callback, or NULL. The passed percentage is in the \mbox{[}0, 1\mbox{]} range. The progress callback must return TRUE if download must be continued. \\
\hline
{\em user\+\_\+data} & User data to provide to the progress callback, or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if the download was successful (or not needed) 
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_abb13ecf71360a5294158b89dead2e1c1}\label{proj_8h_abb13ecf71360a5294158b89dead2e1c1}} 
\index{proj.h@{proj.h}!proj\_grid\_cache\_clear@{proj\_grid\_cache\_clear}}
\index{proj\_grid\_cache\_clear@{proj\_grid\_cache\_clear}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_grid\_cache\_clear()}{proj\_grid\_cache\_clear()}}
{\footnotesize\ttfamily void proj\+\_\+grid\+\_\+cache\+\_\+clear (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx }\end{DoxyParamCaption})}

Clear the local cache of grid chunks.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_ae20fdfc00246dd72d64ee74015998c41}\label{proj_8h_ae20fdfc00246dd72d64ee74015998c41}} 
\index{proj.h@{proj.h}!proj\_grid\_cache\_set\_enable@{proj\_grid\_cache\_set\_enable}}
\index{proj\_grid\_cache\_set\_enable@{proj\_grid\_cache\_set\_enable}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_grid\_cache\_set\_enable()}{proj\_grid\_cache\_set\_enable()}}
{\footnotesize\ttfamily void proj\+\_\+grid\+\_\+cache\+\_\+set\+\_\+enable (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{int}]{enabled }\end{DoxyParamCaption})}

Enable or disable the local cache of grid chunks

This overrides the setting in the PROJ configuration file.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em enabled} & TRUE if the cache is enabled. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a2f964528154ac9e426ab39d62d14e6e3}\label{proj_8h_a2f964528154ac9e426ab39d62d14e6e3}} 
\index{proj.h@{proj.h}!proj\_grid\_cache\_set\_filename@{proj\_grid\_cache\_set\_filename}}
\index{proj\_grid\_cache\_set\_filename@{proj\_grid\_cache\_set\_filename}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_grid\_cache\_set\_filename()}{proj\_grid\_cache\_set\_filename()}}
{\footnotesize\ttfamily void proj\+\_\+grid\+\_\+cache\+\_\+set\+\_\+filename (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{fullname }\end{DoxyParamCaption})}

Override, for the considered context, the path and file of the local cache of grid chunks.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em fullname} & Full name to the cache (encoded in UTF-\/8). If set to NULL, caching will be disabled. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a55c16fa365a1f57e33cb36a8ebbf79cc}\label{proj_8h_a55c16fa365a1f57e33cb36a8ebbf79cc}} 
\index{proj.h@{proj.h}!proj\_grid\_cache\_set\_max\_size@{proj\_grid\_cache\_set\_max\_size}}
\index{proj\_grid\_cache\_set\_max\_size@{proj\_grid\_cache\_set\_max\_size}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_grid\_cache\_set\_max\_size()}{proj\_grid\_cache\_set\_max\_size()}}
{\footnotesize\ttfamily void proj\+\_\+grid\+\_\+cache\+\_\+set\+\_\+max\+\_\+size (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{int}]{max\+\_\+size\+\_\+\+MB }\end{DoxyParamCaption})}

Override, for the considered context, the maximum size of the local cache of grid chunks.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em max\+\_\+size\+\_\+\+MB} & Maximum size, in mega-\/bytes (1024$\ast$1024 bytes), or negative value to set unlimited size. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a47d7a4c280232d7e480655513ff31e8c}\label{proj_8h_a47d7a4c280232d7e480655513ff31e8c}} 
\index{proj.h@{proj.h}!proj\_grid\_cache\_set\_ttl@{proj\_grid\_cache\_set\_ttl}}
\index{proj\_grid\_cache\_set\_ttl@{proj\_grid\_cache\_set\_ttl}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_grid\_cache\_set\_ttl()}{proj\_grid\_cache\_set\_ttl()}}
{\footnotesize\ttfamily void proj\+\_\+grid\+\_\+cache\+\_\+set\+\_\+ttl (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{int}]{ttl\+\_\+seconds }\end{DoxyParamCaption})}

Override, for the considered context, the time-\/to-\/live delay for re-\/checking if the cached properties of files are still up-\/to-\/date.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em ttl\+\_\+seconds} & Delay in seconds. Use negative value for no expiration. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a336295aa5791dc3251913682f995c100}\label{proj_8h_a336295aa5791dc3251913682f995c100}} 
\index{proj.h@{proj.h}!proj\_is\_download\_needed@{proj\_is\_download\_needed}}
\index{proj\_is\_download\_needed@{proj\_is\_download\_needed}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_is\_download\_needed()}{proj\_is\_download\_needed()}}
{\footnotesize\ttfamily int proj\+\_\+is\+\_\+download\+\_\+needed (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{url\+\_\+or\+\_\+filename,  }\item[{int}]{ignore\+\_\+ttl\+\_\+setting }\end{DoxyParamCaption})}

Return if a file must be downloaded or is already available in the PROJ user-\/writable directory.

The file will be determinted to have to be downloaded if it does not exist yet in the user-\/writable directory, or if it is determined that a more recent version exists. To determine if a more recent version exists, PROJ will use the \char`\"{}downloaded\+\_\+file\+\_\+properties\char`\"{} table of its grid cache database. Consequently files manually placed in the user-\/writable directory without using this function would be considered as non-\/existing/obsolete and would be unconditionally downloaded again.

This function can only be used if networking is enabled, and either the default curl network API or a custom one have been installed.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL \\
\hline
{\em url\+\_\+or\+\_\+filename} & URL or filename (without directory component) \\
\hline
{\em ignore\+\_\+ttl\+\_\+setting} & If set to FALSE, PROJ will only check the recentness of an already downloaded file, if the delay between the last time it has been verified and the current time exceeds the TTL setting. This can save network accesses. If set to TRUE, PROJ will unconditionally check from the server the recentness of the file. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if the file must be downloaded with \mbox{\hyperlink{proj_8h_aa17c90464d2c7d325d67493911b1a76b}{proj\+\_\+download\+\_\+file()}} 
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+0 
\end{DoxySince}
\mbox{\Hypertarget{proj_8h_a6f2e97c76583b1053895ede4cfdc80de}\label{proj_8h_a6f2e97c76583b1053895ede4cfdc80de}} 
\index{proj.h@{proj.h}!proj\_normalize\_for\_visualization@{proj\_normalize\_for\_visualization}}
\index{proj\_normalize\_for\_visualization@{proj\_normalize\_for\_visualization}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_normalize\_for\_visualization()}{proj\_normalize\_for\_visualization()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+normalize\+\_\+for\+\_\+visualization (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Returns a PJ$\ast$ object whose axis order is the one expected for visualization purposes. 

The input object must be either\+: 
\begin{DoxyItemize}
\item a coordinate operation, that has been created with proj\+\_\+create\+\_\+crs\+\_\+to\+\_\+crs(). If the axis order of its source or target CRS is northing,easting, then an axis swap operation will be inserted. 
\item or a CRS. The axis order of geographic CRS will be longitude, latitude \mbox{[},height\mbox{]}, and the one of projected CRS will be easting, northing \mbox{[}, height\mbox{]} 
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object of type CRS, or Coordinate\+Operation created with proj\+\_\+create\+\_\+crs\+\_\+to\+\_\+crs() (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new PJ$\ast$ object to free with proj\+\_\+destroy() in case of success, or nullptr in case of error 
\end{DoxyReturn}
\mbox{\Hypertarget{proj_8h_a8a3936225c69913786d5e2dc815ebe4b}\label{proj_8h_a8a3936225c69913786d5e2dc815ebe4b}} 
\index{proj.h@{proj.h}!proj\_trans\_bounds@{proj\_trans\_bounds}}
\index{proj\_trans\_bounds@{proj\_trans\_bounds}!proj.h@{proj.h}}
\doxysubsubsection{\texorpdfstring{proj\_trans\_bounds()}{proj\_trans\_bounds()}}
{\footnotesize\ttfamily int proj\+\_\+trans\+\_\+bounds (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{context,  }\item[{PJ $\ast$}]{P,  }\item[{PJ\+\_\+\+DIRECTION}]{direction,  }\item[{const double}]{xmin,  }\item[{const double}]{ymin,  }\item[{const double}]{xmax,  }\item[{const double}]{ymax,  }\item[{double $\ast$}]{out\+\_\+xmin,  }\item[{double $\ast$}]{out\+\_\+ymin,  }\item[{double $\ast$}]{out\+\_\+xmax,  }\item[{double $\ast$}]{out\+\_\+ymax,  }\item[{const int}]{densify\+\_\+pts }\end{DoxyParamCaption})}



Transform boundary,. 

Transform boundary densifying the edges to account for nonlinear transformations along these edges and extracting the outermost bounds.

If the destination CRS is geographic, the first axis is longitude, and xmax \texorpdfstring{$<$}{<} xmin then the bounds crossed the antimeridian. In this scenario there are two polygons, one on each side of the antimeridian. The first polygon should be constructed with (xmin, ymin, 180, ymax) and the second with (-\/180, ymin, xmax, ymax).

If the destination CRS is geographic, the first axis is latitude, and ymax \texorpdfstring{$<$}{<} ymin then the bounds crossed the antimeridian. In this scenario there are two polygons, one on each side of the antimeridian. The first polygon should be constructed with (ymin, xmin, ymax, 180) and the second with (ymin, -\/180, ymax, xmax).


\begin{DoxyParams}{Parameters}
{\em context} & The PJ\+\_\+\+CONTEXT object. \\
\hline
{\em P} & The PJ object representing the transformation. \\
\hline
{\em direction} & The direction of the transformation. \\
\hline
{\em xmin} & Minimum bounding coordinate of the first axis in source CRS (target CRS if direction is inverse). \\
\hline
{\em ymin} & Minimum bounding coordinate of the second axis in source CRS. (target CRS if direction is inverse). \\
\hline
{\em xmax} & Maximum bounding coordinate of the first axis in source CRS. (target CRS if direction is inverse). \\
\hline
{\em ymax} & Maximum bounding coordinate of the second axis in source CRS. (target CRS if direction is inverse). \\
\hline
{\em out\+\_\+xmin} & Minimum bounding coordinate of the first axis in target CRS (source CRS if direction is inverse). \\
\hline
{\em out\+\_\+ymin} & Minimum bounding coordinate of the second axis in target CRS. (source CRS if direction is inverse). \\
\hline
{\em out\+\_\+xmax} & Maximum bounding coordinate of the first axis in target CRS. (source CRS if direction is inverse). \\
\hline
{\em out\+\_\+ymax} & Maximum bounding coordinate of the second axis in target CRS. (source CRS if direction is inverse). \\
\hline
{\em densify\+\_\+pts} & Recommended to use 21. This is the number of points to use to densify the bounding polygon in the transformation. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an integer. 1 if successful. 0 if failures encountered. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+2 
\end{DoxySince}
