\hypertarget{group__iso19111__functions}{}\doxysection{Binding in C of basic methods from the C++ API}
\label{group__iso19111__functions}\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\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 
\mbox{\Hypertarget{group__iso19111__functions_ga69e847fe98267d7d59d20c8442d4ab77}\label{group__iso19111__functions_ga69e847fe98267d7d59d20c8442d4ab77}} 
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 
\mbox{\Hypertarget{group__iso19111__functions_ga9e884264fb0b4b6a0a6c78722567b59f}\label{group__iso19111__functions_ga9e884264fb0b4b6a0a6c78722567b59f}} 
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 
\mbox{\Hypertarget{group__iso19111__functions_ga8efead6c2a2d4920a3e7a9d05cca52d6}\label{group__iso19111__functions_ga8efead6c2a2d4920a3e7a9d05cca52d6}} 
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}
Functions for ISO19111 C API

The PJ$\ast$ objects returned by \mbox{\hyperlink{group__iso19111__functions_ga757b6749056259c44e7acc66a700b5d8}{proj\+\_\+create\+\_\+from\+\_\+wkt()}}, \mbox{\hyperlink{group__iso19111__functions_gaed12a28a006cb9677d7ede2395e248d4}{proj\+\_\+create\+\_\+from\+\_\+database()}} and other functions in that section will have generally minimal interaction with the functions declared in the upper section of this header file (calling those functions on those objects will either return an error or default/nonsensical values). The exception is for ISO19111 objects of type Coordinate\+Operation that can be exported as a valid PROJ pipeline. In this case, the PJ objects will work for example with proj\+\_\+trans\+\_\+generic(). Conversely, objects returned by proj\+\_\+create() and proj\+\_\+create\+\_\+argv(), which are not of type CRS, will return an error when used with functions of this section. 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__iso19111__functions_gab903de54d45fd8a7d8d7cb53662c1826}\label{group__iso19111__functions_gab903de54d45fd8a7d8d7cb53662c1826}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_as\_proj\_string@{proj\_as\_proj\_string}}
\index{proj\_as\_proj\_string@{proj\_as\_proj\_string}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_as\_proj\_string()}{proj\_as\_proj\_string()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+as\+\_\+proj\+\_\+string (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__iso19111__types_gadd9b673c590f7f90a4b022c68a2b2b00}{PJ\+\_\+\+PROJ\+\_\+\+STRING\+\_\+\+TYPE}}}]{type,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Get a PROJ string representation of an object. 

The returned string is valid while the input obj parameter is valid, and until a next call to \mbox{\hyperlink{group__iso19111__functions_gab903de54d45fd8a7d8d7cb53662c1826}{proj\+\_\+as\+\_\+proj\+\_\+string()}} with the same input object.

\begin{DoxyWarning}{Warning}
If a CRS object was not created from a PROJ string, exporting to a PROJ string will in most cases cause a loss of information. This can potentially lead to erroneous transformations.
\end{DoxyWarning}
This function calls \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IPROJStringExportable_ab592dcf0f32ee2587a782d290aeb0638}{osgeo\+::proj\+::io\+::\+IPROJString\+Exportable\+::export\+To\+PROJString()}}.

This function may return NULL if the object is not compatible with an export to the requested type.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object (must not be NULL) \\
\hline
{\em type} & PROJ String version. \\
\hline
{\em options} & NULL-\/terminated list of strings with \char`\"{}\+KEY=\+VALUE\char`\"{} format. or NULL. Currently supported options are\+: 
\begin{DoxyItemize}
\item USE\+\_\+\+APPROX\+\_\+\+TMERC=YES to add the +approx flag to +proj=tmerc or +proj=utm. 
\item MULTILINE=YES/\+NO. Defaults to NO 
\item INDENTATION\+\_\+\+WIDTH=number. Defaults to 2 (when multiline output is on). 
\item MAX\+\_\+\+LINE\+\_\+\+LENGTH=number. Defaults to 80 (when multiline output is on). 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga667fc1dac4d91d40ea89d90f70b147e7}\label{group__iso19111__functions_ga667fc1dac4d91d40ea89d90f70b147e7}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_as\_projjson@{proj\_as\_projjson}}
\index{proj\_as\_projjson@{proj\_as\_projjson}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_as\_projjson()}{proj\_as\_projjson()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+as\+\_\+projjson (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Get a PROJJSON string representation of an object. 

The returned string is valid while the input obj parameter is valid, and until a next call to \mbox{\hyperlink{group__iso19111__functions_gab903de54d45fd8a7d8d7cb53662c1826}{proj\+\_\+as\+\_\+proj\+\_\+string()}} with the same input object.

This function calls \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IJSONExportable_ae33e25017d2f71ae011e908c00569382}{osgeo\+::proj\+::io\+::\+IJSONExportable\+::export\+To\+JSON()}}.

This function may return NULL if the object is not compatible with an export to the requested type.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object (must not be NULL) \\
\hline
{\em options} & NULL-\/terminated list of strings with \char`\"{}\+KEY=\+VALUE\char`\"{} format. or NULL. Currently supported options are\+: 
\begin{DoxyItemize}
\item MULTILINE=YES/\+NO. Defaults to YES 
\item INDENTATION\+\_\+\+WIDTH=number. Defaults to 2 (when multiline output is on). 
\item SCHEMA=string. URL to PROJJSON schema. Can be set to empty string to disable it. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string, or NULL in case of error.
\end{DoxyReturn}
\begin{DoxySince}{Since}
6.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga87d87597aad60bf06a45997fb8eaa52e}\label{group__iso19111__functions_ga87d87597aad60bf06a45997fb8eaa52e}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_as\_wkt@{proj\_as\_wkt}}
\index{proj\_as\_wkt@{proj\_as\_wkt}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_as\_wkt()}{proj\_as\_wkt()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+as\+\_\+wkt (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__iso19111__types_gaa2c2de23d90fe0d1d335f6184bff764c}{PJ\+\_\+\+WKT\+\_\+\+TYPE}}}]{type,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Get a WKT representation of an object. 

The returned string is valid while the input obj parameter is valid, and until a next call to \mbox{\hyperlink{group__iso19111__functions_ga87d87597aad60bf06a45997fb8eaa52e}{proj\+\_\+as\+\_\+wkt()}} with the same input object.

This function calls \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1IWKTExportable_a1cff37229c2159fb6bc0579e7c1190ce}{osgeo\+::proj\+::io\+::\+IWKTExportable\+::export\+To\+WKT()}}.

This function may return NULL if the object is not compatible with an export to the requested type.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object (must not be NULL) \\
\hline
{\em type} & WKT version. \\
\hline
{\em options} & null-\/terminated list of options, or NULL. Currently supported options are\+: 
\begin{DoxyItemize}
\item MULTILINE=YES/\+NO. Defaults to YES, except for WKT1\+\_\+\+ESRI 
\item INDENTATION\+\_\+\+WIDTH=number. Defaults to 4 (when multiline output is on). 
\item OUTPUT\+\_\+\+AXIS=AUTO/\+YES/\+NO. In AUTO mode, axis will be output for WKT2 variants, for WKT1\+\_\+\+GDAL for Projected\+CRS with easting/northing ordering (otherwise stripped), but not for WKT1\+\_\+\+ESRI. Setting to YES will output them unconditionally, and to NO will omit them unconditionally. 
\item STRICT=YES/\+NO. Default is YES. If NO, a Geographic 3D CRS can be for example exported as WKT1\+\_\+\+GDAL with 3 axes, whereas this is normally not allowed. 
\item ALLOW\+\_\+\+ELLIPSOIDAL\+\_\+\+HEIGHT\+\_\+\+AS\+\_\+\+VERTICAL\+\_\+\+CRS=YES/\+NO. Default is NO. If set to YES and type == PJ\+\_\+\+WKT1\+\_\+\+GDAL, a Geographic 3D CRS or a Projected 3D CRS will be exported as a compound CRS whose vertical part represents an ellipsoidal height (for example for use with LAS 1.\+4 WKT1). 
\item ALLOW\+\_\+\+LINUNIT\+\_\+\+NODE=YES/\+NO. Default is YES starting with PROJ 9.\+1. Only taken into account with type == PJ\+\_\+\+WKT1\+\_\+\+ESRI on a Geographic 3D CRS. 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga449bd02948d99d6a3aa8b78ecaade110}\label{group__iso19111__functions_ga449bd02948d99d6a3aa8b78ecaade110}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_celestial\_body\_list\_destroy@{proj\_celestial\_body\_list\_destroy}}
\index{proj\_celestial\_body\_list\_destroy@{proj\_celestial\_body\_list\_destroy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_celestial\_body\_list\_destroy()}{proj\_celestial\_body\_list\_destroy()}}
{\footnotesize\ttfamily void proj\+\_\+celestial\+\_\+body\+\_\+list\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structPROJ__CELESTIAL__BODY__INFO}{PROJ\+\_\+\+CELESTIAL\+\_\+\+BODY\+\_\+\+INFO}} $\ast$$\ast$}]{list }\end{DoxyParamCaption})}



Destroy the result returned by \mbox{\hyperlink{group__iso19111__functions_gaa5e2bbaa165953cc8662df712e780ae0}{proj\+\_\+get\+\_\+celestial\+\_\+body\+\_\+list\+\_\+from\+\_\+database()}}. 

\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gab3f8fd8798ccde680bef1b37ee07cfc2}\label{group__iso19111__functions_gab3f8fd8798ccde680bef1b37ee07cfc2}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_clone@{proj\_clone}}
\index{proj\_clone@{proj\_clone}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_clone()}{proj\_clone()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+clone (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



\char`\"{}\+Clone\char`\"{} an object. 

The object might be used independently of the original object, provided that the use of context is compatible. In particular if you intend to use a clone in a different thread than the original object, you should pass a context that is different from the one of the original object (or later assign a different context with proj\+\_\+assign\+\_\+context()).

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object to clone. Must not be NULL. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaed64a00aefa340d14389adb1390d1335}\label{group__iso19111__functions_gaed64a00aefa340d14389adb1390d1335}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_concatoperation\_get\_step@{proj\_concatoperation\_get\_step}}
\index{proj\_concatoperation\_get\_step@{proj\_concatoperation\_get\_step}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_concatoperation\_get\_step()}{proj\_concatoperation\_get\_step()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+concatoperation\+\_\+get\+\_\+step (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{concatoperation,  }\item[{int}]{i\+\_\+step }\end{DoxyParamCaption})}



Returns a step of a concatenated operation. 

The input object must be a concatenated operation.

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em concatoperation} & Concatenated operation (must not be NULL) \\
\hline
{\em i\+\_\+step} & Index of the step to extract. Between 0 and \mbox{\hyperlink{group__iso19111__functions_gace4d7b4541748dbfb958f839bfe61fa9}{proj\+\_\+concatoperation\+\_\+get\+\_\+step\+\_\+count()}}-\/1 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gace4d7b4541748dbfb958f839bfe61fa9}\label{group__iso19111__functions_gace4d7b4541748dbfb958f839bfe61fa9}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_concatoperation\_get\_step\_count@{proj\_concatoperation\_get\_step\_count}}
\index{proj\_concatoperation\_get\_step\_count@{proj\_concatoperation\_get\_step\_count}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_concatoperation\_get\_step\_count()}{proj\_concatoperation\_get\_step\_count()}}
{\footnotesize\ttfamily int proj\+\_\+concatoperation\+\_\+get\+\_\+step\+\_\+count (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{concatoperation }\end{DoxyParamCaption})}



Returns the number of steps of a concatenated operation. 

The input object must be a concatenated operation.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em concatoperation} & Concatenated operation (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the number of steps, or 0 in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga6ab791c35012d9591cb94b1ad82fcb97}\label{group__iso19111__functions_ga6ab791c35012d9591cb94b1ad82fcb97}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_context\_get\_database\_metadata@{proj\_context\_get\_database\_metadata}}
\index{proj\_context\_get\_database\_metadata@{proj\_context\_get\_database\_metadata}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_context\_get\_database\_metadata()}{proj\_context\_get\_database\_metadata()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+context\+\_\+get\+\_\+database\+\_\+metadata (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{key }\end{DoxyParamCaption})}



Return a metadata from the database. 

The returned pointer remains valid while ctx is valid, and until \mbox{\hyperlink{group__iso19111__functions_ga6ab791c35012d9591cb94b1ad82fcb97}{proj\+\_\+context\+\_\+get\+\_\+database\+\_\+metadata()}} is called.

Available keys\+:


\begin{DoxyItemize}
\item DATABASE.\+LAYOUT.\+VERSION.\+MAJOR
\item DATABASE.\+LAYOUT.\+VERSION.\+MINOR
\item EPSG.\+VERSION
\item EPSG.\+DATE
\item ESRI.\+VERSION
\item ESRI.\+DATE
\item IGNF.\+SOURCE
\item IGNF.\+VERSION
\item IGNF.\+DATE
\item NKG.\+SOURCE
\item NKG.\+VERSION
\item NKG.\+DATE
\item PROJ.\+VERSION
\item PROJ\+\_\+\+DATA.\+VERSION \+: PROJ-\/data version most compatible with this database.
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em key} & Metadata key. Must not be NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
value, or nullptr 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga6c1139a7aeccd2ae7b21009215dfd7a5}\label{group__iso19111__functions_ga6c1139a7aeccd2ae7b21009215dfd7a5}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_context\_get\_database\_path@{proj\_context\_get\_database\_path}}
\index{proj\_context\_get\_database\_path@{proj\_context\_get\_database\_path}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_context\_get\_database\_path()}{proj\_context\_get\_database\_path()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+context\+\_\+get\+\_\+database\+\_\+path (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx }\end{DoxyParamCaption})}



Returns the path to the database. 

The returned pointer remains valid while ctx is valid, and until \mbox{\hyperlink{group__iso19111__functions_ga3eff4cd87726e46cf5a4bf971c1cabf3}{proj\+\_\+context\+\_\+set\+\_\+database\+\_\+path()}} is called.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
path, or nullptr 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gae33b9dccb71dc4c54a87a7ccaaac670f}\label{group__iso19111__functions_gae33b9dccb71dc4c54a87a7ccaaac670f}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_context\_get\_database\_structure@{proj\_context\_get\_database\_structure}}
\index{proj\_context\_get\_database\_structure@{proj\_context\_get\_database\_structure}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_context\_get\_database\_structure()}{proj\_context\_get\_database\_structure()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} proj\+\_\+context\+\_\+get\+\_\+database\+\_\+structure (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Return the database structure. 

Return SQL statements to run to initiate a new valid auxiliary empty database. It contains definitions of tables, views and triggers, as well as metadata for the version of the layout of the database.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em options} & null-\/terminated list of options, or NULL. None currently. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
list of SQL statements (to be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}), or NULL in case of error. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga6b06d3c534dc0a78a2cc13b861542f1f}\label{group__iso19111__functions_ga6b06d3c534dc0a78a2cc13b861542f1f}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_context\_guess\_wkt\_dialect@{proj\_context\_guess\_wkt\_dialect}}
\index{proj\_context\_guess\_wkt\_dialect@{proj\_context\_guess\_wkt\_dialect}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_context\_guess\_wkt\_dialect()}{proj\_context\_guess\_wkt\_dialect()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__iso19111__types_ga3453493087d771fdd594accba4a60e16}{PJ\+\_\+\+GUESSED\+\_\+\+WKT\+\_\+\+DIALECT}} proj\+\_\+context\+\_\+guess\+\_\+wkt\+\_\+dialect (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{wkt }\end{DoxyParamCaption})}



Guess the \char`\"{}dialect\char`\"{} of the WKT string. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em wkt} & String (must not be NULL) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga6ed84e4b3915c7428e582b869c6fb6a6}\label{group__iso19111__functions_ga6ed84e4b3915c7428e582b869c6fb6a6}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_context\_set\_autoclose\_database@{proj\_context\_set\_autoclose\_database}}
\index{proj\_context\_set\_autoclose\_database@{proj\_context\_set\_autoclose\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_autoclose\_database()}{proj\_context\_set\_autoclose\_database()}}
{\footnotesize\ttfamily void proj\+\_\+context\+\_\+set\+\_\+autoclose\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{int}]{autoclose }\end{DoxyParamCaption})}



Starting with PROJ 8.\+1, this function does nothing. 

If you want to take into account changes to the PROJ database, you need to re-\/create a new context.


\begin{DoxyParams}{Parameters}
{\em ctx} & Ignored \\
\hline
{\em autoclose} & Ignored \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
6.\+2 
\end{DoxySince}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000001}{Deprecated}}]Since 8.\+1 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__iso19111__functions_ga3eff4cd87726e46cf5a4bf971c1cabf3}\label{group__iso19111__functions_ga3eff4cd87726e46cf5a4bf971c1cabf3}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_context\_set\_database\_path@{proj\_context\_set\_database\_path}}
\index{proj\_context\_set\_database\_path@{proj\_context\_set\_database\_path}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_context\_set\_database\_path()}{proj\_context\_set\_database\_path()}}
{\footnotesize\ttfamily int proj\+\_\+context\+\_\+set\+\_\+database\+\_\+path (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{db\+Path,  }\item[{const char $\ast$const $\ast$}]{aux\+Db\+Paths,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Explicitly point to the main PROJ CRS and coordinate operation definition database (\char`\"{}proj.\+db\char`\"{}), and potentially auxiliary databases with same structure. 

Starting with PROJ 8.\+1, if the aux\+Db\+Paths parameter is an empty array, the PROJ\+\_\+\+AUX\+\_\+\+DB environment variable will be used, if set. It must contain one or several paths. If several paths are provided, they must be separated by the colon (\+:) character on Unix, and on Windows, by the semi-\/colon (;) character.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em db\+Path} & Path to main database, or NULL for default. \\
\hline
{\em aux\+Db\+Paths} & NULL-\/terminated list of auxiliary database filenames, or NULL. \\
\hline
{\em options} & should be set to NULL for now \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga9a1c751564fa5c4b1846af39dbd7105b}\label{group__iso19111__functions_ga9a1c751564fa5c4b1846af39dbd7105b}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_create\_inverse@{proj\_coordoperation\_create\_inverse}}
\index{proj\_coordoperation\_create\_inverse@{proj\_coordoperation\_create\_inverse}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_create\_inverse()}{proj\_coordoperation\_create\_inverse()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+coordoperation\+\_\+create\+\_\+inverse (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Returns a PJ$\ast$ coordinate operation object which represents the inverse operation of the specified coordinate operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object of type Coordinate\+Operation (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}
\begin{DoxySince}{Since}
6.\+3 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga28abd93c89d4266142c4ddca5c242d46}\label{group__iso19111__functions_ga28abd93c89d4266142c4ddca5c242d46}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_get\_accuracy@{proj\_coordoperation\_get\_accuracy}}
\index{proj\_coordoperation\_get\_accuracy@{proj\_coordoperation\_get\_accuracy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_get\_accuracy()}{proj\_coordoperation\_get\_accuracy()}}
{\footnotesize\ttfamily double proj\+\_\+coordoperation\+\_\+get\+\_\+accuracy (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation }\end{DoxyParamCaption})}



Return the accuracy (in metre) of a coordinate operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Coordinate operation. Must not be NULL. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the accuracy, or a negative value if unknown or in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gadfb7e8c628a45e56bef25ef7a7defd6d}\label{group__iso19111__functions_gadfb7e8c628a45e56bef25ef7a7defd6d}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_get\_grid\_used@{proj\_coordoperation\_get\_grid\_used}}
\index{proj\_coordoperation\_get\_grid\_used@{proj\_coordoperation\_get\_grid\_used}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_get\_grid\_used()}{proj\_coordoperation\_get\_grid\_used()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+get\+\_\+grid\+\_\+used (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation,  }\item[{int}]{index,  }\item[{const char $\ast$$\ast$}]{out\+\_\+short\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+full\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+package\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+url,  }\item[{int $\ast$}]{out\+\_\+direct\+\_\+download,  }\item[{int $\ast$}]{out\+\_\+open\+\_\+license,  }\item[{int $\ast$}]{out\+\_\+available }\end{DoxyParamCaption})}



Return a parameter of a Single\+Operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Single\+Operation or derived classes (must not be NULL) \\
\hline
{\em index} & Parameter index. \\
\hline
{\em out\+\_\+short\+\_\+name} & Pointer to a string value to store the grid short name. or NULL \\
\hline
{\em out\+\_\+full\+\_\+name} & Pointer to a string value to store the grid full filename. or NULL \\
\hline
{\em out\+\_\+package\+\_\+name} & Pointer to a string value to store the package name where the grid might be found. or NULL \\
\hline
{\em out\+\_\+url} & Pointer to a string value to store the grid URL or the package URL where the grid might be found. or NULL \\
\hline
{\em out\+\_\+direct\+\_\+download} & Pointer to a int (boolean) value to store whether $\ast$out\+\_\+url can be downloaded directly. or NULL \\
\hline
{\em out\+\_\+open\+\_\+license} & Pointer to a int (boolean) value to store whether the grid is released with an open license. or NULL \\
\hline
{\em out\+\_\+available} & Pointer to a int (boolean) value to store whether the grid is available at runtime. or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaa2d8da513d8c48235eb63571533b694a}\label{group__iso19111__functions_gaa2d8da513d8c48235eb63571533b694a}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_get\_grid\_used\_count@{proj\_coordoperation\_get\_grid\_used\_count}}
\index{proj\_coordoperation\_get\_grid\_used\_count@{proj\_coordoperation\_get\_grid\_used\_count}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_get\_grid\_used\_count()}{proj\_coordoperation\_get\_grid\_used\_count()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+get\+\_\+grid\+\_\+used\+\_\+count (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation }\end{DoxyParamCaption})}



Return the number of grids used by a Coordinate\+Operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Coordinate\+Operation or derived classes (must not be NULL) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga3e3cd827a8ed1d9d69701fe52d4c9ff2}\label{group__iso19111__functions_ga3e3cd827a8ed1d9d69701fe52d4c9ff2}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_get\_method\_info@{proj\_coordoperation\_get\_method\_info}}
\index{proj\_coordoperation\_get\_method\_info@{proj\_coordoperation\_get\_method\_info}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_get\_method\_info()}{proj\_coordoperation\_get\_method\_info()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+get\+\_\+method\+\_\+info (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation,  }\item[{const char $\ast$$\ast$}]{out\+\_\+method\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+method\+\_\+auth\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+method\+\_\+code }\end{DoxyParamCaption})}



Return information on the operation method of the Single\+Operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Single\+Operation (typically a Conversion or Transformation) (must not be NULL) \\
\hline
{\em out\+\_\+method\+\_\+name} & Pointer to a string value to store the method (projection) name. or NULL \\
\hline
{\em out\+\_\+method\+\_\+auth\+\_\+name} & Pointer to a string value to store the method authority name. or NULL \\
\hline
{\em out\+\_\+method\+\_\+code} & Pointer to a string value to store the method code. or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaa47fc7f7c959d1b704bc00c5d7c5f16a}\label{group__iso19111__functions_gaa47fc7f7c959d1b704bc00c5d7c5f16a}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_get\_param@{proj\_coordoperation\_get\_param}}
\index{proj\_coordoperation\_get\_param@{proj\_coordoperation\_get\_param}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_get\_param()}{proj\_coordoperation\_get\_param()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+get\+\_\+param (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation,  }\item[{int}]{index,  }\item[{const char $\ast$$\ast$}]{out\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+auth\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+code,  }\item[{double $\ast$}]{out\+\_\+value,  }\item[{const char $\ast$$\ast$}]{out\+\_\+value\+\_\+string,  }\item[{double $\ast$}]{out\+\_\+unit\+\_\+conv\+\_\+factor,  }\item[{const char $\ast$$\ast$}]{out\+\_\+unit\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+unit\+\_\+auth\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+unit\+\_\+code,  }\item[{const char $\ast$$\ast$}]{out\+\_\+unit\+\_\+category }\end{DoxyParamCaption})}



Return a parameter of a Single\+Operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Single\+Operation or derived classes (must not be NULL) \\
\hline
{\em index} & Parameter index. \\
\hline
{\em out\+\_\+name} & Pointer to a string value to store the parameter name. or NULL \\
\hline
{\em out\+\_\+auth\+\_\+name} & Pointer to a string value to store the parameter authority name. or NULL \\
\hline
{\em out\+\_\+code} & Pointer to a string value to store the parameter code. or NULL \\
\hline
{\em out\+\_\+value} & Pointer to a double value to store the parameter value (if numeric). or NULL \\
\hline
{\em out\+\_\+value\+\_\+string} & Pointer to a string value to store the parameter value (if of type string). or NULL \\
\hline
{\em out\+\_\+unit\+\_\+conv\+\_\+factor} & Pointer to a double value to store the parameter unit conversion factor. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+name} & Pointer to a string value to store the parameter unit name. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+auth\+\_\+name} & Pointer to a string value to store the unit authority name. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+code} & Pointer to a string value to store the unit code. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+category} & Pointer to a string value to store the parameter name. or NULL. This value might be \char`\"{}unknown\char`\"{}, \char`\"{}none\char`\"{}, \char`\"{}linear\char`\"{}, \char`\"{}linear\+\_\+per\+\_\+time\char`\"{}, \char`\"{}angular\char`\"{}, \char`\"{}angular\+\_\+per\+\_\+time\char`\"{}, \char`\"{}scale\char`\"{}, \char`\"{}scale\+\_\+per\+\_\+time\char`\"{}, \char`\"{}time\char`\"{}, \char`\"{}parametric\char`\"{} or \char`\"{}parametric\+\_\+per\+\_\+time\char`\"{} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga73bd01a3d5ea9cf38d419f9f4182f4f4}\label{group__iso19111__functions_ga73bd01a3d5ea9cf38d419f9f4182f4f4}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_get\_param\_count@{proj\_coordoperation\_get\_param\_count}}
\index{proj\_coordoperation\_get\_param\_count@{proj\_coordoperation\_get\_param\_count}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_get\_param\_count()}{proj\_coordoperation\_get\_param\_count()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+get\+\_\+param\+\_\+count (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation }\end{DoxyParamCaption})}



Return the number of parameters of a Single\+Operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Single\+Operation or derived classes (must not be NULL) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga419f328752102122e7299469a985ddfa}\label{group__iso19111__functions_ga419f328752102122e7299469a985ddfa}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_get\_param\_index@{proj\_coordoperation\_get\_param\_index}}
\index{proj\_coordoperation\_get\_param\_index@{proj\_coordoperation\_get\_param\_index}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_get\_param\_index()}{proj\_coordoperation\_get\_param\_index()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+get\+\_\+param\+\_\+index (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Return the index of a parameter of a Single\+Operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Single\+Operation or derived classes (must not be NULL) \\
\hline
{\em name} & Parameter name. Must not be NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
index (\texorpdfstring{$>$}{>}=0), or -\/1 in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga1935305cbaaa0b35f21d890e56192847}\label{group__iso19111__functions_ga1935305cbaaa0b35f21d890e56192847}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_get\_towgs84\_values@{proj\_coordoperation\_get\_towgs84\_values}}
\index{proj\_coordoperation\_get\_towgs84\_values@{proj\_coordoperation\_get\_towgs84\_values}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_get\_towgs84\_values()}{proj\_coordoperation\_get\_towgs84\_values()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+get\+\_\+towgs84\+\_\+values (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation,  }\item[{double $\ast$}]{out\+\_\+values,  }\item[{int}]{value\+\_\+count,  }\item[{int}]{emit\+\_\+error\+\_\+if\+\_\+incompatible }\end{DoxyParamCaption})}



Return the parameters of a Helmert transformation as WKT1 TOWGS84 values. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Transformation, that can be represented as a WKT1 TOWGS84 node (must not be NULL) \\
\hline
{\em out\+\_\+values} & Pointer to an array of value\+\_\+count double values. \\
\hline
{\em value\+\_\+count} & Size of out\+\_\+values array. The suggested size is 7 to get translation, rotation and scale difference parameters. Rotation and scale difference terms might be zero if the transformation only includes translation parameters. In that case, value\+\_\+count could be set to 3. \\
\hline
{\em emit\+\_\+error\+\_\+if\+\_\+incompatible} & Boolean to indicate if an error must be logged if coordoperation is not compatible with a WKT1 TOWGS84 representation. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success, or FALSE if coordoperation is not compatible with a WKT1 TOWGS84 representation. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaa0804ba270694460a2d315ff44219ca4}\label{group__iso19111__functions_gaa0804ba270694460a2d315ff44219ca4}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_has\_ballpark\_transformation@{proj\_coordoperation\_has\_ballpark\_transformation}}
\index{proj\_coordoperation\_has\_ballpark\_transformation@{proj\_coordoperation\_has\_ballpark\_transformation}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_has\_ballpark\_transformation()}{proj\_coordoperation\_has\_ballpark\_transformation()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+has\+\_\+ballpark\+\_\+transformation (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation }\end{DoxyParamCaption})}



Return whether a coordinate operation has a \char`\"{}ballpark\char`\"{} transformation, that is a very approximate one, due to lack of more accurate transformations. 

Typically a null geographic offset between two horizontal datum, or a null vertical offset (or limited to unit changes) between two vertical datum. Errors of several tens to one hundred meters might be expected, compared to more accurate transformations.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Coordinate\+Operation or derived classes (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE or FALSE. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaac33865ae52cf66babc2f24f6748a606}\label{group__iso19111__functions_gaac33865ae52cf66babc2f24f6748a606}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_coordoperation\_is\_instantiable@{proj\_coordoperation\_is\_instantiable}}
\index{proj\_coordoperation\_is\_instantiable@{proj\_coordoperation\_is\_instantiable}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_coordoperation\_is\_instantiable()}{proj\_coordoperation\_is\_instantiable()}}
{\footnotesize\ttfamily int proj\+\_\+coordoperation\+\_\+is\+\_\+instantiable (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{coordoperation }\end{DoxyParamCaption})}



Return whether a coordinate operation can be instantiated as a PROJ pipeline, checking in particular that referenced grids are available. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em coordoperation} & Object of type Coordinate\+Operation or derived classes (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE or FALSE. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaed12a28a006cb9677d7ede2395e248d4}\label{group__iso19111__functions_gaed12a28a006cb9677d7ede2395e248d4}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_create\_from\_database@{proj\_create\_from\_database}}
\index{proj\_create\_from\_database@{proj\_create\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_create\_from\_database()}{proj\_create\_from\_database()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+create\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{const char $\ast$}]{code,  }\item[{\mbox{\hyperlink{group__iso19111__types_ga26c44aece2b0119157cd4a061e45321f}{PJ\+\_\+\+CATEGORY}}}]{category,  }\item[{int}]{use\+PROJAlternative\+Grid\+Names,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Instantiate an object from a database lookup. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & Context, or NULL for default context. \\
\hline
{\em auth\+\_\+name} & Authority name (must not be NULL) \\
\hline
{\em code} & Object code (must not be NULL) \\
\hline
{\em category} & Object category \\
\hline
{\em use\+PROJAlternative\+Grid\+Names} & Whether PROJ alternative grid names should be substituted to the official grid names. Only used on transformations \\
\hline
{\em options} & should be set to NULL for now \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga2e3581bd359824f198f118e46c630571}\label{group__iso19111__functions_ga2e3581bd359824f198f118e46c630571}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_create\_from\_name@{proj\_create\_from\_name}}
\index{proj\_create\_from\_name@{proj\_create\_from\_name}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_create\_from\_name()}{proj\_create\_from\_name()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$ proj\+\_\+create\+\_\+from\+\_\+name (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{const char $\ast$}]{searched\+Name,  }\item[{const \mbox{\hyperlink{group__iso19111__types_ga0acde08a3427c34e551a61f758b31c48}{PJ\+\_\+\+TYPE}} $\ast$}]{types,  }\item[{size\+\_\+t}]{types\+Count,  }\item[{int}]{approximate\+Match,  }\item[{size\+\_\+t}]{limit\+Result\+Count,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Return a list of objects by their name. 


\begin{DoxyParams}{Parameters}
{\em ctx} & Context, or NULL for default context. \\
\hline
{\em auth\+\_\+name} & Authority name, used to restrict the search. Or NULL for all authorities. \\
\hline
{\em searched\+Name} & Searched name. Must be at least 2 character long. \\
\hline
{\em types} & List of object types into which to search. If NULL, all object types will be searched. \\
\hline
{\em types\+Count} & Number of elements in types, or 0 if types is NULL \\
\hline
{\em approximate\+Match} & Whether approximate name identification is allowed. \\
\hline
{\em limit\+Result\+Count} & Maximum number of results to return. Or 0 for unlimited. \\
\hline
{\em options} & should be set to NULL for now \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a result set that must be unreferenced with \mbox{\hyperlink{group__iso19111__functions_gaa1274c437a786f9064556c139d689d71}{proj\+\_\+list\+\_\+destroy()}}, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga757b6749056259c44e7acc66a700b5d8}\label{group__iso19111__functions_ga757b6749056259c44e7acc66a700b5d8}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_create\_from\_wkt@{proj\_create\_from\_wkt}}
\index{proj\_create\_from\_wkt@{proj\_create\_from\_wkt}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_create\_from\_wkt()}{proj\_create\_from\_wkt()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+create\+\_\+from\+\_\+wkt (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{wkt,  }\item[{const char $\ast$const $\ast$}]{options,  }\item[{\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} $\ast$}]{out\+\_\+warnings,  }\item[{\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} $\ast$}]{out\+\_\+grammar\+\_\+errors }\end{DoxyParamCaption})}



Instantiate an object from a WKT string. 

This function calls \mbox{\hyperlink{classosgeo_1_1proj_1_1io_1_1WKTParser_a8931fbaea1d67eff5098da93b38de6bb}{osgeo\+::proj\+::io\+::\+WKTParser\+::create\+From\+WKT()}}

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em wkt} & WKT string (must not be NULL) \\
\hline
{\em options} & null-\/terminated list of options, or NULL. Currently supported options are\+: 
\begin{DoxyItemize}
\item STRICT=YES/\+NO. Defaults to NO. When set to YES, strict validation will be enabled. 
\item UNSET\+\_\+\+IDENTIFIERS\+\_\+\+IF\+\_\+\+INCOMPATIBLE\+\_\+\+DEF=YES/\+NO. Defaults to YES. When set to YES, object identifiers are unset when there is a contradiction between the definition from WKT and the one from the database./
\item 
\end{DoxyItemize}\\
\hline
{\em out\+\_\+warnings} & Pointer to a PROJ\+\_\+\+STRING\+\_\+\+LIST object, or NULL. If provided, $\ast$out\+\_\+warnings will contain a list of warnings, typically for non recognized projection method or parameters. It must be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}. \\
\hline
{\em out\+\_\+grammar\+\_\+errors} & Pointer to a PROJ\+\_\+\+STRING\+\_\+\+LIST object, or NULL. If provided, $\ast$out\+\_\+grammar\+\_\+errors will contain a list of errors regarding the WKT grammar. It must be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gafa1d9bb19763799dbf60cd5da298c9ef}\label{group__iso19111__functions_gafa1d9bb19763799dbf60cd5da298c9ef}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_create\_operation\_factory\_context@{proj\_create\_operation\_factory\_context}}
\index{proj\_create\_operation\_factory\_context@{proj\_create\_operation\_factory\_context}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_create\_operation\_factory\_context()}{proj\_create\_operation\_factory\_context()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$ proj\+\_\+create\+\_\+operation\+\_\+factory\+\_\+context (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{authority }\end{DoxyParamCaption})}



Instantiate a context for building coordinate operations between two CRS. 

The returned object must be unreferenced with \mbox{\hyperlink{group__iso19111__functions_ga84662943acd6b3913e11e77ecb773d11}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+destroy()}} after use.

If authority is NULL or the empty string, then coordinate operations from any authority will be searched, with the restrictions set in the authority\+\_\+to\+\_\+authority\+\_\+preference database table. If authority is set to \char`\"{}any\char`\"{}, then coordinate operations from any authority will be searched If authority is a non-\/empty string different of \char`\"{}any\char`\"{}, then coordinate operations will be searched only in that authority namespace.


\begin{DoxyParams}{Parameters}
{\em ctx} & Context, or NULL for default context. \\
\hline
{\em authority} & Name of authority to which to restrict the search of candidate operations. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with \mbox{\hyperlink{group__iso19111__functions_ga84662943acd6b3913e11e77ecb773d11}{proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+destroy()}}, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gab5ef57e9bd9bff1341d05d56d1c5a8e2}\label{group__iso19111__functions_gab5ef57e9bd9bff1341d05d56d1c5a8e2}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_create\_operations@{proj\_create\_operations}}
\index{proj\_create\_operations@{proj\_create\_operations}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_create\_operations()}{proj\_create\_operations()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$ proj\+\_\+create\+\_\+operations (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{source\+\_\+crs,  }\item[{const PJ $\ast$}]{target\+\_\+crs,  }\item[{const \mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{operation\+Context }\end{DoxyParamCaption})}



Find a list of Coordinate\+Operation from source\+\_\+crs to target\+\_\+crs. 

The operations are sorted with the most relevant ones first\+: by descending area (intersection of the transformation area with the area of interest, or intersection of the transformation with the area of use of the CRS), and by increasing accuracy. Operations with unknown accuracy are sorted last, whatever their area.

When one of the source or target CRS has a vertical component but not the other one, the one that has no vertical component is automatically promoted to a 3D version, where its vertical axis is the ellipsoidal height in metres, using the ellipsoid of the base geodetic CRS.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em source\+\_\+crs} & source CRS. Must not be NULL. \\
\hline
{\em target\+\_\+crs} & source CRS. Must not be NULL. \\
\hline
{\em operation\+Context} & Search context. Must not be NULL. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a result set that must be unreferenced with \mbox{\hyperlink{group__iso19111__functions_gaa1274c437a786f9064556c139d689d71}{proj\+\_\+list\+\_\+destroy()}}, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga8cb1f40bfa518906a1ce8fa42b3b2678}\label{group__iso19111__functions_ga8cb1f40bfa518906a1ce8fa42b3b2678}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_get\_coordinate\_system@{proj\_crs\_get\_coordinate\_system}}
\index{proj\_crs\_get\_coordinate\_system@{proj\_crs\_get\_coordinate\_system}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_get\_coordinate\_system()}{proj\_crs\_get\_coordinate\_system()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+crs\+\_\+get\+\_\+coordinate\+\_\+system (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs }\end{DoxyParamCaption})}



Returns the coordinate system of a Single\+CRS. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type Single\+CRS (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga3dffb8f90a78a3dc6cfb0586bd1c8e0a}\label{group__iso19111__functions_ga3dffb8f90a78a3dc6cfb0586bd1c8e0a}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_get\_coordoperation@{proj\_crs\_get\_coordoperation}}
\index{proj\_crs\_get\_coordoperation@{proj\_crs\_get\_coordoperation}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_get\_coordoperation()}{proj\_crs\_get\_coordoperation()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+crs\+\_\+get\+\_\+coordoperation (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs }\end{DoxyParamCaption})}



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. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type Derived\+CRS or Bound\+CRSs (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object of type Single\+Operation that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga62b01453e51ac619bddc553067186ca1}\label{group__iso19111__functions_ga62b01453e51ac619bddc553067186ca1}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_get\_datum@{proj\_crs\_get\_datum}}
\index{proj\_crs\_get\_datum@{proj\_crs\_get\_datum}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_get\_datum()}{proj\_crs\_get\_datum()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+crs\+\_\+get\+\_\+datum (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs }\end{DoxyParamCaption})}



Returns the datum of a Single\+CRS. 

If that function returns NULL, \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__iso19111__functions_ga7f3d16e65d6ef1688646e8cea432ca48}{proj\+\_\+crs\+\_\+get\+\_\+datum\+\_\+ensemble()}} to potentially get a Datum\+Ensemble instead.
\end{DoxySeeAlso}
The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type Single\+CRS (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error (or if there is no datum) 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga7f3d16e65d6ef1688646e8cea432ca48}\label{group__iso19111__functions_ga7f3d16e65d6ef1688646e8cea432ca48}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_get\_datum\_ensemble@{proj\_crs\_get\_datum\_ensemble}}
\index{proj\_crs\_get\_datum\_ensemble@{proj\_crs\_get\_datum\_ensemble}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_get\_datum\_ensemble()}{proj\_crs\_get\_datum\_ensemble()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+crs\+\_\+get\+\_\+datum\+\_\+ensemble (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs }\end{DoxyParamCaption})}



Returns the datum ensemble of a Single\+CRS. 

If that function returns NULL, \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__iso19111__functions_ga62b01453e51ac619bddc553067186ca1}{proj\+\_\+crs\+\_\+get\+\_\+datum()}} to potentially get a Datum instead.
\end{DoxySeeAlso}
The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type Single\+CRS (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error (or if there is no datum ensemble)
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gaf5a7272e379e5abd367a64c426a9d414}\label{group__iso19111__functions_gaf5a7272e379e5abd367a64c426a9d414}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_get\_datum\_forced@{proj\_crs\_get\_datum\_forced}}
\index{proj\_crs\_get\_datum\_forced@{proj\_crs\_get\_datum\_forced}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_get\_datum\_forced()}{proj\_crs\_get\_datum\_forced()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+crs\+\_\+get\+\_\+datum\+\_\+forced (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs }\end{DoxyParamCaption})}



Returns a datum for a Single\+CRS. 

If the Single\+CRS has a datum, then this datum is returned. Otherwise, the Single\+CRS has a datum ensemble, and this datum ensemble is returned as a regular datum instead of a datum ensemble.

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type Single\+CRS (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error (or if there is no datum)
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga2405cdec5fe6b121ff6f8d9bea358b07}\label{group__iso19111__functions_ga2405cdec5fe6b121ff6f8d9bea358b07}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_get\_geodetic\_crs@{proj\_crs\_get\_geodetic\_crs}}
\index{proj\_crs\_get\_geodetic\_crs@{proj\_crs\_get\_geodetic\_crs}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_get\_geodetic\_crs()}{proj\_crs\_get\_geodetic\_crs()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+crs\+\_\+get\+\_\+geodetic\+\_\+crs (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs }\end{DoxyParamCaption})}



Get the geodetic\+CRS / geographic\+CRS from a CRS. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type CRS (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga1d79bd02c7d38deba48825481c1ff203}\label{group__iso19111__functions_ga1d79bd02c7d38deba48825481c1ff203}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_get\_horizontal\_datum@{proj\_crs\_get\_horizontal\_datum}}
\index{proj\_crs\_get\_horizontal\_datum@{proj\_crs\_get\_horizontal\_datum}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_get\_horizontal\_datum()}{proj\_crs\_get\_horizontal\_datum()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+crs\+\_\+get\+\_\+horizontal\+\_\+datum (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs }\end{DoxyParamCaption})}



Get the horizontal datum from a CRS. 

This function may return a Datum or Datum\+Ensemble object.

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type CRS (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga212d4b01b4a05ace104884535c7c6917}\label{group__iso19111__functions_ga212d4b01b4a05ace104884535c7c6917}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_get\_sub\_crs@{proj\_crs\_get\_sub\_crs}}
\index{proj\_crs\_get\_sub\_crs@{proj\_crs\_get\_sub\_crs}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_get\_sub\_crs()}{proj\_crs\_get\_sub\_crs()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+crs\+\_\+get\+\_\+sub\+\_\+crs (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs,  }\item[{int}]{index }\end{DoxyParamCaption})}



Get a CRS component from a Compound\+CRS. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type CRS (must not be NULL) \\
\hline
{\em index} & Index of the CRS component (typically 0 = horizontal, 1 = vertical) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gab0bf9c7247a50e54502f3977f6c975ed}\label{group__iso19111__functions_gab0bf9c7247a50e54502f3977f6c975ed}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_crs\_is\_derived@{proj\_crs\_is\_derived}}
\index{proj\_crs\_is\_derived@{proj\_crs\_is\_derived}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_crs\_is\_derived()}{proj\_crs\_is\_derived()}}
{\footnotesize\ttfamily int proj\+\_\+crs\+\_\+is\+\_\+derived (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{crs }\end{DoxyParamCaption})}



Returns whether a CRS is a derived CRS. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em crs} & Object of type CRS (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if the CRS is a derived CRS. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+0 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga6e3d7224db5759a7cc0e186c63a06203}\label{group__iso19111__functions_ga6e3d7224db5759a7cc0e186c63a06203}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_cs\_get\_axis\_count@{proj\_cs\_get\_axis\_count}}
\index{proj\_cs\_get\_axis\_count@{proj\_cs\_get\_axis\_count}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_cs\_get\_axis\_count()}{proj\_cs\_get\_axis\_count()}}
{\footnotesize\ttfamily int proj\+\_\+cs\+\_\+get\+\_\+axis\+\_\+count (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{cs }\end{DoxyParamCaption})}



Returns the number of axis of the coordinate system. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em cs} & Object of type Coordinate\+System (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of axis, or -\/1 in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga798d8fb70377cee44abd97996d39c50c}\label{group__iso19111__functions_ga798d8fb70377cee44abd97996d39c50c}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_cs\_get\_axis\_info@{proj\_cs\_get\_axis\_info}}
\index{proj\_cs\_get\_axis\_info@{proj\_cs\_get\_axis\_info}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_cs\_get\_axis\_info()}{proj\_cs\_get\_axis\_info()}}
{\footnotesize\ttfamily int proj\+\_\+cs\+\_\+get\+\_\+axis\+\_\+info (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{cs,  }\item[{int}]{index,  }\item[{const char $\ast$$\ast$}]{out\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+abbrev,  }\item[{const char $\ast$$\ast$}]{out\+\_\+direction,  }\item[{double $\ast$}]{out\+\_\+unit\+\_\+conv\+\_\+factor,  }\item[{const char $\ast$$\ast$}]{out\+\_\+unit\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+unit\+\_\+auth\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+unit\+\_\+code }\end{DoxyParamCaption})}



Returns information on an axis. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em cs} & Object of type Coordinate\+System (must not be NULL) \\
\hline
{\em index} & Index of the coordinate system (between 0 and \mbox{\hyperlink{group__iso19111__functions_ga6e3d7224db5759a7cc0e186c63a06203}{proj\+\_\+cs\+\_\+get\+\_\+axis\+\_\+count()}} -\/ 1) \\
\hline
{\em out\+\_\+name} & Pointer to a string value to store the axis name. or NULL \\
\hline
{\em out\+\_\+abbrev} & Pointer to a string value to store the axis abbreviation. or NULL \\
\hline
{\em out\+\_\+direction} & Pointer to a string value to store the axis direction. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+conv\+\_\+factor} & Pointer to a double value to store the axis unit conversion factor. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+name} & Pointer to a string value to store the axis unit name. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+auth\+\_\+name} & Pointer to a string value to store the axis unit authority name. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+code} & Pointer to a string value to store the axis unit code. or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gae725f3de6682e038deaf408e7e0efe25}\label{group__iso19111__functions_gae725f3de6682e038deaf408e7e0efe25}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_cs\_get\_type@{proj\_cs\_get\_type}}
\index{proj\_cs\_get\_type@{proj\_cs\_get\_type}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_cs\_get\_type()}{proj\_cs\_get\_type()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__iso19111__types_ga309b520b438e2c6d150b2e635a4afdf6}{PJ\+\_\+\+COORDINATE\+\_\+\+SYSTEM\+\_\+\+TYPE}} proj\+\_\+cs\+\_\+get\+\_\+type (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{cs }\end{DoxyParamCaption})}



Returns the type of the coordinate system. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em cs} & Object of type Coordinate\+System (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
type, or PJ\+\_\+\+CS\+\_\+\+TYPE\+\_\+\+UNKNOWN in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga28ea9a6d171d6f9623a995bc04f862de}\label{group__iso19111__functions_ga28ea9a6d171d6f9623a995bc04f862de}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_datum\_ensemble\_get\_accuracy@{proj\_datum\_ensemble\_get\_accuracy}}
\index{proj\_datum\_ensemble\_get\_accuracy@{proj\_datum\_ensemble\_get\_accuracy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_datum\_ensemble\_get\_accuracy()}{proj\_datum\_ensemble\_get\_accuracy()}}
{\footnotesize\ttfamily double proj\+\_\+datum\+\_\+ensemble\+\_\+get\+\_\+accuracy (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{datum\+\_\+ensemble }\end{DoxyParamCaption})}



Returns the positional accuracy of the datum ensemble. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em datum\+\_\+ensemble} & Object of type Datum\+Ensemble (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the accuracy, or -\/1 in case of error.
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gabe85eca25ee77a56f0a4b7654d269fed}\label{group__iso19111__functions_gabe85eca25ee77a56f0a4b7654d269fed}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_datum\_ensemble\_get\_member@{proj\_datum\_ensemble\_get\_member}}
\index{proj\_datum\_ensemble\_get\_member@{proj\_datum\_ensemble\_get\_member}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_datum\_ensemble\_get\_member()}{proj\_datum\_ensemble\_get\_member()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+datum\+\_\+ensemble\+\_\+get\+\_\+member (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{datum\+\_\+ensemble,  }\item[{int}]{member\+\_\+index }\end{DoxyParamCaption})}



Returns a member from a datum ensemble. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em datum\+\_\+ensemble} & Object of type Datum\+Ensemble (must not be NULL) \\
\hline
{\em member\+\_\+index} & Index of the datum member to extract (between 0 and \mbox{\hyperlink{group__iso19111__functions_gadb56c2288b443b0fea664b4361d79d46}{proj\+\_\+datum\+\_\+ensemble\+\_\+get\+\_\+member\+\_\+count()}}-\/1) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error (or if there is no datum ensemble)
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gadb56c2288b443b0fea664b4361d79d46}\label{group__iso19111__functions_gadb56c2288b443b0fea664b4361d79d46}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_datum\_ensemble\_get\_member\_count@{proj\_datum\_ensemble\_get\_member\_count}}
\index{proj\_datum\_ensemble\_get\_member\_count@{proj\_datum\_ensemble\_get\_member\_count}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_datum\_ensemble\_get\_member\_count()}{proj\_datum\_ensemble\_get\_member\_count()}}
{\footnotesize\ttfamily int proj\+\_\+datum\+\_\+ensemble\+\_\+get\+\_\+member\+\_\+count (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{datum\+\_\+ensemble }\end{DoxyParamCaption})}



Returns the number of members of a datum ensemble. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em datum\+\_\+ensemble} & Object of type Datum\+Ensemble (must not be NULL)\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga42234041d803ed80cc340e35bd3bb6b3}\label{group__iso19111__functions_ga42234041d803ed80cc340e35bd3bb6b3}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_dynamic\_datum\_get\_frame\_reference\_epoch@{proj\_dynamic\_datum\_get\_frame\_reference\_epoch}}
\index{proj\_dynamic\_datum\_get\_frame\_reference\_epoch@{proj\_dynamic\_datum\_get\_frame\_reference\_epoch}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_dynamic\_datum\_get\_frame\_reference\_epoch()}{proj\_dynamic\_datum\_get\_frame\_reference\_epoch()}}
{\footnotesize\ttfamily double proj\+\_\+dynamic\+\_\+datum\+\_\+get\+\_\+frame\+\_\+reference\+\_\+epoch (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{datum }\end{DoxyParamCaption})}



Returns the frame reference epoch of a dynamic geodetic or vertical reference frame. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em datum} & Object of type Dynamic\+Geodetic\+Reference\+Frame or Dynamic\+Vertical\+Reference\+Frame (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the frame reference epoch as decimal year, or -\/1 in case of error.
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+2 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gacc1402e3ce480e0618da4c615d5c3145}\label{group__iso19111__functions_gacc1402e3ce480e0618da4c615d5c3145}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_ellipsoid\_get\_parameters@{proj\_ellipsoid\_get\_parameters}}
\index{proj\_ellipsoid\_get\_parameters@{proj\_ellipsoid\_get\_parameters}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_ellipsoid\_get\_parameters()}{proj\_ellipsoid\_get\_parameters()}}
{\footnotesize\ttfamily int proj\+\_\+ellipsoid\+\_\+get\+\_\+parameters (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{ellipsoid,  }\item[{double $\ast$}]{out\+\_\+semi\+\_\+major\+\_\+metre,  }\item[{double $\ast$}]{out\+\_\+semi\+\_\+minor\+\_\+metre,  }\item[{int $\ast$}]{out\+\_\+is\+\_\+semi\+\_\+minor\+\_\+computed,  }\item[{double $\ast$}]{out\+\_\+inv\+\_\+flattening }\end{DoxyParamCaption})}



Return ellipsoid parameters. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em ellipsoid} & Object of type Ellipsoid (must not be NULL) \\
\hline
{\em out\+\_\+semi\+\_\+major\+\_\+metre} & Pointer to a value to store the semi-\/major axis in metre. or NULL \\
\hline
{\em out\+\_\+semi\+\_\+minor\+\_\+metre} & Pointer to a value to store the semi-\/minor axis in metre. or NULL \\
\hline
{\em out\+\_\+is\+\_\+semi\+\_\+minor\+\_\+computed} & Pointer to a boolean value to indicate if the semi-\/minor value was computed. If FALSE, its value comes from the definition. or NULL \\
\hline
{\em out\+\_\+inv\+\_\+flattening} & Pointer to a value to store the inverse flattening. or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga2001cc5d15f27fd3e16c2a373559a39a}\label{group__iso19111__functions_ga2001cc5d15f27fd3e16c2a373559a39a}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_area\_of\_use@{proj\_get\_area\_of\_use}}
\index{proj\_get\_area\_of\_use@{proj\_get\_area\_of\_use}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_area\_of\_use()}{proj\_get\_area\_of\_use()}}
{\footnotesize\ttfamily int proj\+\_\+get\+\_\+area\+\_\+of\+\_\+use (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj,  }\item[{double $\ast$}]{out\+\_\+west\+\_\+lon\+\_\+degree,  }\item[{double $\ast$}]{out\+\_\+south\+\_\+lat\+\_\+degree,  }\item[{double $\ast$}]{out\+\_\+east\+\_\+lon\+\_\+degree,  }\item[{double $\ast$}]{out\+\_\+north\+\_\+lat\+\_\+degree,  }\item[{const char $\ast$$\ast$}]{out\+\_\+area\+\_\+name }\end{DoxyParamCaption})}



Return the area of use of an object. 

In case of multiple usages, this will be the one of first usage.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object (must not be NULL) \\
\hline
{\em out\+\_\+west\+\_\+lon\+\_\+degree} & Pointer to a double to receive the west longitude (in degrees). Or NULL. If the returned value is -\/1000, the bounding box is unknown. \\
\hline
{\em out\+\_\+south\+\_\+lat\+\_\+degree} & Pointer to a double to receive the south latitude (in degrees). Or NULL. If the returned value is -\/1000, the bounding box is unknown. \\
\hline
{\em out\+\_\+east\+\_\+lon\+\_\+degree} & Pointer to a double to receive the east longitude (in degrees). Or NULL. If the returned value is -\/1000, the bounding box is unknown. \\
\hline
{\em out\+\_\+north\+\_\+lat\+\_\+degree} & Pointer to a double to receive the north latitude (in degrees). Or NULL. If the returned value is -\/1000, the bounding box is unknown. \\
\hline
{\em out\+\_\+area\+\_\+name} & Pointer to a string to receive the name of the area of use. Or NULL. $\ast$p\+\_\+area\+\_\+name is valid while obj is valid itself. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success, FALSE in case of error or if the area of use is unknown. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga49b562c6d8015209f14dfd541db745a7}\label{group__iso19111__functions_ga49b562c6d8015209f14dfd541db745a7}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_authorities\_from\_database@{proj\_get\_authorities\_from\_database}}
\index{proj\_get\_authorities\_from\_database@{proj\_get\_authorities\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_authorities\_from\_database()}{proj\_get\_authorities\_from\_database()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} proj\+\_\+get\+\_\+authorities\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx }\end{DoxyParamCaption})}



Return the list of authorities used in the database. 

The returned list is NULL terminated and must be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a NULL terminated list of NUL-\/terminated strings that must be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaa5e2bbaa165953cc8662df712e780ae0}\label{group__iso19111__functions_gaa5e2bbaa165953cc8662df712e780ae0}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_celestial\_body\_list\_from\_database@{proj\_get\_celestial\_body\_list\_from\_database}}
\index{proj\_get\_celestial\_body\_list\_from\_database@{proj\_get\_celestial\_body\_list\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_celestial\_body\_list\_from\_database()}{proj\_get\_celestial\_body\_list\_from\_database()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPROJ__CELESTIAL__BODY__INFO}{PROJ\+\_\+\+CELESTIAL\+\_\+\+BODY\+\_\+\+INFO}} $\ast$$\ast$ proj\+\_\+get\+\_\+celestial\+\_\+body\+\_\+list\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{int $\ast$}]{out\+\_\+result\+\_\+count }\end{DoxyParamCaption})}



Enumerate celestial bodies from the database. 

The returned object is an array of PROJ\+\_\+\+CELESTIAL\+\_\+\+BODY\+\_\+\+INFO$\ast$ pointers, whose last entry is NULL. This array should be freed with \mbox{\hyperlink{group__iso19111__functions_ga449bd02948d99d6a3aa8b78ecaade110}{proj\+\_\+celestial\+\_\+body\+\_\+list\+\_\+destroy()}}


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em auth\+\_\+name} & Authority name, used to restrict the search. Or NULL for all authorities. \\
\hline
{\em out\+\_\+result\+\_\+count} & Output parameter pointing to an integer to receive the size of the result list. Might be NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an array of PROJ\+\_\+\+CELESTIAL\+\_\+\+BODY\+\_\+\+INFO$\ast$ pointers to be freed with \mbox{\hyperlink{group__iso19111__functions_ga449bd02948d99d6a3aa8b78ecaade110}{proj\+\_\+celestial\+\_\+body\+\_\+list\+\_\+destroy()}}, or NULL in case of error. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga0fcd43938ad966855bbe2f628dfd43fc}\label{group__iso19111__functions_ga0fcd43938ad966855bbe2f628dfd43fc}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_celestial\_body\_name@{proj\_get\_celestial\_body\_name}}
\index{proj\_get\_celestial\_body\_name@{proj\_get\_celestial\_body\_name}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_celestial\_body\_name()}{proj\_get\_celestial\_body\_name()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+get\+\_\+celestial\+\_\+body\+\_\+name (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Get the name of the celestial body of this object. 

Object should be a CRS, Datum or Ellipsoid.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object of type CRS, Datum or Ellipsoid.(must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the name of the celestial body, or NULL. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gaffb1dff915e98bfd42588bdd9425e425}\label{group__iso19111__functions_gaffb1dff915e98bfd42588bdd9425e425}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_codes\_from\_database@{proj\_get\_codes\_from\_database}}
\index{proj\_get\_codes\_from\_database@{proj\_get\_codes\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_codes\_from\_database()}{proj\_get\_codes\_from\_database()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} proj\+\_\+get\+\_\+codes\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{\mbox{\hyperlink{group__iso19111__types_ga0acde08a3427c34e551a61f758b31c48}{PJ\+\_\+\+TYPE}}}]{type,  }\item[{int}]{allow\+\_\+deprecated }\end{DoxyParamCaption})}



Returns the set of authority codes of the given object type. 

The returned list is NULL terminated and must be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context. \\
\hline
{\em auth\+\_\+name} & Authority name (must not be NULL) \\
\hline
{\em type} & Object type. \\
\hline
{\em allow\+\_\+deprecated} & whether we should return deprecated objects as well.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a NULL terminated list of NUL-\/terminated strings that must be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}, or NULL in case of error.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__iso19111__functions_gae560f23c0a760cf08df726517af32a6b}{proj\+\_\+get\+\_\+crs\+\_\+info\+\_\+list\+\_\+from\+\_\+database()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__iso19111__functions_gae560f23c0a760cf08df726517af32a6b}\label{group__iso19111__functions_gae560f23c0a760cf08df726517af32a6b}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_crs\_info\_list\_from\_database@{proj\_get\_crs\_info\_list\_from\_database}}
\index{proj\_get\_crs\_info\_list\_from\_database@{proj\_get\_crs\_info\_list\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_crs\_info\_list\_from\_database()}{proj\_get\_crs\_info\_list\_from\_database()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPROJ__CRS__INFO}{PROJ\+\_\+\+CRS\+\_\+\+INFO}} $\ast$$\ast$ proj\+\_\+get\+\_\+crs\+\_\+info\+\_\+list\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{const \mbox{\hyperlink{structPROJ__CRS__LIST__PARAMETERS}{PROJ\+\_\+\+CRS\+\_\+\+LIST\+\_\+\+PARAMETERS}} $\ast$}]{params,  }\item[{int $\ast$}]{out\+\_\+result\+\_\+count }\end{DoxyParamCaption})}



Enumerate CRS objects from the database, taking into account various criteria. 

The returned object is an array of PROJ\+\_\+\+CRS\+\_\+\+INFO$\ast$ pointers, whose last entry is NULL. This array should be freed with \mbox{\hyperlink{group__iso19111__functions_ga8efead6c2a2d4920a3e7a9d05cca52d6}{proj\+\_\+crs\+\_\+info\+\_\+list\+\_\+destroy()}}

When no filter parameters are set, this is functionally equivalent to \mbox{\hyperlink{group__iso19111__functions_gaffb1dff915e98bfd42588bdd9425e425}{proj\+\_\+get\+\_\+codes\+\_\+from\+\_\+database()}}, instantiating a PJ$\ast$ object for each of the codes with \mbox{\hyperlink{group__iso19111__functions_gaed12a28a006cb9677d7ede2395e248d4}{proj\+\_\+create\+\_\+from\+\_\+database()}} and retrieving information with the various getters. However this function will be much faster.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em auth\+\_\+name} & Authority name, used to restrict the search. Or NULL for all authorities. \\
\hline
{\em params} & Additional criteria, or NULL. If not-\/\+NULL, params SHOULD have been allocated by \mbox{\hyperlink{group__iso19111__functions_ga4d1981585db661fee87887c3ddbb2ab0}{proj\+\_\+get\+\_\+crs\+\_\+list\+\_\+parameters\+\_\+create()}}, as the \mbox{\hyperlink{structPROJ__CRS__LIST__PARAMETERS}{PROJ\+\_\+\+CRS\+\_\+\+LIST\+\_\+\+PARAMETERS}} structure might grow over time. \\
\hline
{\em out\+\_\+result\+\_\+count} & Output parameter pointing to an integer to receive the size of the result list. Might be NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an array of PROJ\+\_\+\+CRS\+\_\+\+INFO$\ast$ pointers to be freed with \mbox{\hyperlink{group__iso19111__functions_ga8efead6c2a2d4920a3e7a9d05cca52d6}{proj\+\_\+crs\+\_\+info\+\_\+list\+\_\+destroy()}}, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga4d1981585db661fee87887c3ddbb2ab0}\label{group__iso19111__functions_ga4d1981585db661fee87887c3ddbb2ab0}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_crs\_list\_parameters\_create@{proj\_get\_crs\_list\_parameters\_create}}
\index{proj\_get\_crs\_list\_parameters\_create@{proj\_get\_crs\_list\_parameters\_create}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_crs\_list\_parameters\_create()}{proj\_get\_crs\_list\_parameters\_create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPROJ__CRS__LIST__PARAMETERS}{PROJ\+\_\+\+CRS\+\_\+\+LIST\+\_\+\+PARAMETERS}} $\ast$ proj\+\_\+get\+\_\+crs\+\_\+list\+\_\+parameters\+\_\+create (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Instantiate a default set of parameters to be used by proj\+\_\+get\+\_\+crs\+\_\+list(). 

\begin{DoxyReturn}{Returns}
a new object to free with \mbox{\hyperlink{group__iso19111__functions_ga9e884264fb0b4b6a0a6c78722567b59f}{proj\+\_\+get\+\_\+crs\+\_\+list\+\_\+parameters\+\_\+destroy()}} 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga1b9e88a9919ef4da2ba49e69a636df16}\label{group__iso19111__functions_ga1b9e88a9919ef4da2ba49e69a636df16}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_ellipsoid@{proj\_get\_ellipsoid}}
\index{proj\_get\_ellipsoid@{proj\_get\_ellipsoid}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_ellipsoid()}{proj\_get\_ellipsoid()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+get\+\_\+ellipsoid (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Get the ellipsoid from a CRS or a Geodetic\+Reference\+Frame. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object of type CRS or Geodetic\+Reference\+Frame (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gabf2acd272bf28deaaefcf2d090d19a0b}\label{group__iso19111__functions_gabf2acd272bf28deaaefcf2d090d19a0b}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_geoid\_models\_from\_database@{proj\_get\_geoid\_models\_from\_database}}
\index{proj\_get\_geoid\_models\_from\_database@{proj\_get\_geoid\_models\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_geoid\_models\_from\_database()}{proj\_get\_geoid\_models\_from\_database()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} proj\+\_\+get\+\_\+geoid\+\_\+models\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{const char $\ast$}]{code,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Returns a list of geoid models available for that crs. 

The list includes the geoid models connected directly with the crs, or via \char`\"{}\+Height Depth Reversal\char`\"{} or \char`\"{}\+Change of Vertical Unit\char`\"{} transformations. The returned list is NULL terminated and must be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}.


\begin{DoxyParams}{Parameters}
{\em ctx} & Context, or NULL for default context. \\
\hline
{\em auth\+\_\+name} & Authority name (must not be NULL) \\
\hline
{\em code} & Object code (must not be NULL) \\
\hline
{\em options} & should be set to NULL for now \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
list of geoid models names (to be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}), or NULL in case of error. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gae917ff661853ed52360dbfd4d3bcbf67}\label{group__iso19111__functions_gae917ff661853ed52360dbfd4d3bcbf67}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_id\_auth\_name@{proj\_get\_id\_auth\_name}}
\index{proj\_get\_id\_auth\_name@{proj\_get\_id\_auth\_name}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_id\_auth\_name()}{proj\_get\_id\_auth\_name()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+get\+\_\+id\+\_\+auth\+\_\+name (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj,  }\item[{int}]{index }\end{DoxyParamCaption})}



Get the authority name / codespace of an identifier of an object. 

The lifetime of the returned string is the same as the input obj parameter.


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
{\em index} & Index of the identifier. 0 = first identifier \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string, or NULL in case of error or missing name. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gab1c678e033ee0a425f8c52af47a20ddf}\label{group__iso19111__functions_gab1c678e033ee0a425f8c52af47a20ddf}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_id\_code@{proj\_get\_id\_code}}
\index{proj\_get\_id\_code@{proj\_get\_id\_code}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_id\_code()}{proj\_get\_id\_code()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+get\+\_\+id\+\_\+code (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj,  }\item[{int}]{index }\end{DoxyParamCaption})}



Get the code of an identifier of an object. 

The lifetime of the returned string is the same as the input obj parameter.


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
{\em index} & Index of the identifier. 0 = first identifier \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string, or NULL in case of error or missing name. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gacb45f9123d0d55f18e8bea8b73bf9067}\label{group__iso19111__functions_gacb45f9123d0d55f18e8bea8b73bf9067}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_insert\_statements@{proj\_get\_insert\_statements}}
\index{proj\_get\_insert\_statements@{proj\_get\_insert\_statements}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_insert\_statements()}{proj\_get\_insert\_statements()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}} proj\+\_\+get\+\_\+insert\+\_\+statements (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__INSERT__SESSION}{PJ\+\_\+\+INSERT\+\_\+\+SESSION}} $\ast$}]{session,  }\item[{const PJ $\ast$}]{object,  }\item[{const char $\ast$}]{authority,  }\item[{const char $\ast$}]{code,  }\item[{int}]{numeric\+\_\+codes,  }\item[{const char $\ast$const $\ast$}]{allowed\+\_\+authorities,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Returns SQL statements needed to insert the passed object into the database. 

\mbox{\hyperlink{group__iso19111__functions_gadcafc50dcf519643cc9b360cb9943fcb}{proj\+\_\+insert\+\_\+object\+\_\+session\+\_\+create()}} may have been called previously.

It is strongly recommended that new objects should not be added in common registries, such as \char`\"{}\+EPSG\char`\"{}, \char`\"{}\+ESRI\char`\"{}, \char`\"{}\+IAU\char`\"{}, etc. Users should use a custom authority name instead. If a new object should be added to the official EPSG registry, users are invited to follow the procedure explained at \href{https://epsg.org/dataset-change-requests.html}{\texttt{ https\+://epsg.\+org/dataset-\/change-\/requests.\+html}}.

Combined with \mbox{\hyperlink{group__iso19111__functions_gae33b9dccb71dc4c54a87a7ccaaac670f}{proj\+\_\+context\+\_\+get\+\_\+database\+\_\+structure()}}, users can create auxiliary databases, instead of directly modifying the main proj.\+db database. Those auxiliary databases can be specified through \mbox{\hyperlink{group__iso19111__functions_ga3eff4cd87726e46cf5a4bf971c1cabf3}{proj\+\_\+context\+\_\+set\+\_\+database\+\_\+path()}} or the PROJ\+\_\+\+AUX\+\_\+\+DB environment variable.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em session} & The insertion session. May be NULL if a single object must be inserted. \\
\hline
{\em object} & The object to insert into the database. Currently only Prime\+Meridian, Ellipsoid, Datum, Geodetic\+CRS, Projected\+CRS, Vertical\+CRS, Compound\+CRS or Bound\+CRS are supported. \\
\hline
{\em authority} & Authority name into which the object will be inserted. Must not be NULL. \\
\hline
{\em code} & Code with which the object will be inserted.\+Must not be NULL. \\
\hline
{\em numeric\+\_\+codes} & Whether intermediate objects that can be created should use numeric codes (true), or may be alphanumeric (false) \\
\hline
{\em allowed\+\_\+authorities} & NULL terminated list of authority names, or NULL. Authorities to which intermediate objects are allowed to refer to. \char`\"{}authority\char`\"{} will be implicitly added to it. Note that unit, coordinate systems, projection methods and parameters will in any case be allowed to refer to EPSG. If NULL, allowed\+\_\+authorities defaults to \{\char`\"{}\+EPSG\char`\"{}, \char`\"{}\+PROJ\char`\"{}, nullptr\} \\
\hline
{\em options} & NULL terminated list of options, or NULL. No options are supported currently.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a list of insert statements (to be freed with \mbox{\hyperlink{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}{proj\+\_\+string\+\_\+list\+\_\+destroy()}}), or NULL in case of error. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga2cbd7427aee737d6e6bf49ba439d4da4}\label{group__iso19111__functions_ga2cbd7427aee737d6e6bf49ba439d4da4}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_name@{proj\_get\_name}}
\index{proj\_get\_name@{proj\_get\_name}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_name()}{proj\_get\_name()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+get\+\_\+name (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Get the name of an object. 

The lifetime of the returned string is the same as the input obj parameter.


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string, or NULL in case of error or missing name. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga1643f868cc65aa73947545c06b984ecc}\label{group__iso19111__functions_ga1643f868cc65aa73947545c06b984ecc}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_non\_deprecated@{proj\_get\_non\_deprecated}}
\index{proj\_get\_non\_deprecated@{proj\_get\_non\_deprecated}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_non\_deprecated()}{proj\_get\_non\_deprecated()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$ proj\+\_\+get\+\_\+non\+\_\+deprecated (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Return a list of non-\/deprecated objects related to the passed one. 


\begin{DoxyParams}{Parameters}
{\em ctx} & Context, or NULL for default context. \\
\hline
{\em obj} & Object (of type CRS for now) for which non-\/deprecated objects must be searched. Must not be NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a result set that must be unreferenced with \mbox{\hyperlink{group__iso19111__functions_gaa1274c437a786f9064556c139d689d71}{proj\+\_\+list\+\_\+destroy()}}, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga8d0e294b0a21514d0ed763428d7cffb8}\label{group__iso19111__functions_ga8d0e294b0a21514d0ed763428d7cffb8}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_prime\_meridian@{proj\_get\_prime\_meridian}}
\index{proj\_get\_prime\_meridian@{proj\_get\_prime\_meridian}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_prime\_meridian()}{proj\_get\_prime\_meridian()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+get\+\_\+prime\+\_\+meridian (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Get the prime meridian of a CRS or a Geodetic\+Reference\+Frame. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object of type CRS or Geodetic\+Reference\+Frame (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga6c6f1bc87ee5a2c3c38f872b5eab1874}\label{group__iso19111__functions_ga6c6f1bc87ee5a2c3c38f872b5eab1874}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_remarks@{proj\_get\_remarks}}
\index{proj\_get\_remarks@{proj\_get\_remarks}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_remarks()}{proj\_get\_remarks()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+get\+\_\+remarks (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Get the remarks of an object. 

The lifetime of the returned string is the same as the input obj parameter.


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string, or NULL in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaca5b39ab9b215732470128d96e93149b}\label{group__iso19111__functions_gaca5b39ab9b215732470128d96e93149b}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_scope@{proj\_get\_scope}}
\index{proj\_get\_scope@{proj\_get\_scope}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_scope()}{proj\_get\_scope()}}
{\footnotesize\ttfamily const char $\ast$ proj\+\_\+get\+\_\+scope (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Get the scope of an object. 

In case of multiple usages, this will be the one of first usage.

The lifetime of the returned string is the same as the input obj parameter.


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string, or NULL in case of error or missing scope. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaca20f75e07f699cbcddea5013038af3d}\label{group__iso19111__functions_gaca20f75e07f699cbcddea5013038af3d}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_source\_crs@{proj\_get\_source\_crs}}
\index{proj\_get\_source\_crs@{proj\_get\_source\_crs}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_source\_crs()}{proj\_get\_source\_crs()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+get\+\_\+source\+\_\+crs (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Return the base CRS of a Bound\+CRS or a Derived\+CRS/\+Projected\+CRS, or the source CRS of a Coordinate\+Operation. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object of type Bound\+CRS or Coordinate\+Operation (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error, or missing source CRS. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga61bd60fa5f9c8a2f6a3443ddb2a5b10a}\label{group__iso19111__functions_ga61bd60fa5f9c8a2f6a3443ddb2a5b10a}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_suggested\_operation@{proj\_get\_suggested\_operation}}
\index{proj\_get\_suggested\_operation@{proj\_get\_suggested\_operation}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_suggested\_operation()}{proj\_get\_suggested\_operation()}}
{\footnotesize\ttfamily int proj\+\_\+get\+\_\+suggested\+\_\+operation (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$}]{operations,  }\item[{PJ\+\_\+\+DIRECTION}]{direction,  }\item[{PJ\+\_\+\+COORD}]{coord }\end{DoxyParamCaption})}

Return the index of the operation that would be the most appropriate to transform the specified coordinates.

This operation may use resources that are not locally available, depending on the search criteria used by \mbox{\hyperlink{group__iso19111__functions_gab5ef57e9bd9bff1341d05d56d1c5a8e2}{proj\+\_\+create\+\_\+operations()}}.

This could be done by using \mbox{\hyperlink{group__iso19111__functions_gab5ef57e9bd9bff1341d05d56d1c5a8e2}{proj\+\_\+create\+\_\+operations()}} with a punctual bounding box, but this function is faster when one needs to evaluate on many points with the same (source\+\_\+crs, target\+\_\+crs) tuple.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em operations} & List of operations returned by \mbox{\hyperlink{group__iso19111__functions_gab5ef57e9bd9bff1341d05d56d1c5a8e2}{proj\+\_\+create\+\_\+operations()}} \\
\hline
{\em direction} & Direction into which to transform the point. \\
\hline
{\em coord} & Coordinate to transform \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the index in operations that would be used to transform coord. Or -\/1 in case of error, or no match.
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gabac35c21b9c1ee0dd95373d37d63fab6}\label{group__iso19111__functions_gabac35c21b9c1ee0dd95373d37d63fab6}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_target\_crs@{proj\_get\_target\_crs}}
\index{proj\_get\_target\_crs@{proj\_get\_target\_crs}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_target\_crs()}{proj\_get\_target\_crs()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+get\+\_\+target\+\_\+crs (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Return the hub CRS of a Bound\+CRS or the target CRS of a Coordinate\+Operation. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object of type Bound\+CRS or Coordinate\+Operation (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Object that must be unreferenced with proj\+\_\+destroy(), or NULL in case of error, or missing target CRS. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gabbebc66b740741b14c89afa398a1b58a}\label{group__iso19111__functions_gabbebc66b740741b14c89afa398a1b58a}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_type@{proj\_get\_type}}
\index{proj\_get\_type@{proj\_get\_type}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_type()}{proj\_get\_type()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__iso19111__types_ga0acde08a3427c34e551a61f758b31c48}{PJ\+\_\+\+TYPE}} proj\+\_\+get\+\_\+type (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Return the type of an object. 


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
its type. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gad9912220346fc8c2aea7170dbf62132a}\label{group__iso19111__functions_gad9912220346fc8c2aea7170dbf62132a}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_get\_units\_from\_database@{proj\_get\_units\_from\_database}}
\index{proj\_get\_units\_from\_database@{proj\_get\_units\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_get\_units\_from\_database()}{proj\_get\_units\_from\_database()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPROJ__UNIT__INFO}{PROJ\+\_\+\+UNIT\+\_\+\+INFO}} $\ast$$\ast$ proj\+\_\+get\+\_\+units\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{const char $\ast$}]{category,  }\item[{int}]{allow\+\_\+deprecated,  }\item[{int $\ast$}]{out\+\_\+result\+\_\+count }\end{DoxyParamCaption})}



Enumerate units from the database, taking into account various criteria. 

The returned object is an array of PROJ\+\_\+\+UNIT\+\_\+\+INFO$\ast$ pointers, whose last entry is NULL. This array should be freed with \mbox{\hyperlink{group__iso19111__functions_gac92c073d80a23c8e36b0405287899e65}{proj\+\_\+unit\+\_\+list\+\_\+destroy()}}


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em auth\+\_\+name} & Authority name, used to restrict the search. Or NULL for all authorities. \\
\hline
{\em category} & Filter by category, if this parameter is not NULL. Category is one of \char`\"{}linear\char`\"{}, \char`\"{}linear\+\_\+per\+\_\+time\char`\"{}, \char`\"{}angular\char`\"{}, \char`\"{}angular\+\_\+per\+\_\+time\char`\"{}, \char`\"{}scale\char`\"{}, \char`\"{}scale\+\_\+per\+\_\+time\char`\"{} or \char`\"{}time\char`\"{} \\
\hline
{\em allow\+\_\+deprecated} & whether we should return deprecated objects as well. \\
\hline
{\em out\+\_\+result\+\_\+count} & Output parameter pointing to an integer to receive the size of the result list. Might be NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an array of PROJ\+\_\+\+UNIT\+\_\+\+INFO$\ast$ pointers to be freed with \mbox{\hyperlink{group__iso19111__functions_gac92c073d80a23c8e36b0405287899e65}{proj\+\_\+unit\+\_\+list\+\_\+destroy()}}, or NULL in case of error.
\end{DoxyReturn}
\begin{DoxySince}{Since}
7.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga9f07363878036878575ad847a23326bd}\label{group__iso19111__functions_ga9f07363878036878575ad847a23326bd}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_grid\_get\_info\_from\_database@{proj\_grid\_get\_info\_from\_database}}
\index{proj\_grid\_get\_info\_from\_database@{proj\_grid\_get\_info\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_grid\_get\_info\_from\_database()}{proj\_grid\_get\_info\_from\_database()}}
{\footnotesize\ttfamily int proj\+\_\+grid\+\_\+get\+\_\+info\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{grid\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+full\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+package\+\_\+name,  }\item[{const char $\ast$$\ast$}]{out\+\_\+url,  }\item[{int $\ast$}]{out\+\_\+direct\+\_\+download,  }\item[{int $\ast$}]{out\+\_\+open\+\_\+license,  }\item[{int $\ast$}]{out\+\_\+available }\end{DoxyParamCaption})}



Get information for a grid from a database lookup. 


\begin{DoxyParams}{Parameters}
{\em ctx} & Context, or NULL for default context. \\
\hline
{\em grid\+\_\+name} & Grid name (must not be NULL) \\
\hline
{\em out\+\_\+full\+\_\+name} & Pointer to a string value to store the grid full filename. or NULL \\
\hline
{\em out\+\_\+package\+\_\+name} & Pointer to a string value to store the package name where the grid might be found. or NULL \\
\hline
{\em out\+\_\+url} & Pointer to a string value to store the grid URL or the package URL where the grid might be found. or NULL \\
\hline
{\em out\+\_\+direct\+\_\+download} & Pointer to a int (boolean) value to store whether $\ast$out\+\_\+url can be downloaded directly. or NULL \\
\hline
{\em out\+\_\+open\+\_\+license} & Pointer to a int (boolean) value to store whether the grid is released with an open license. or NULL \\
\hline
{\em out\+\_\+available} & Pointer to a int (boolean) value to store whether the grid is available at runtime. or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga8300cfa5fb5e080e21cb205a6fde53b3}\label{group__iso19111__functions_ga8300cfa5fb5e080e21cb205a6fde53b3}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_identify@{proj\_identify}}
\index{proj\_identify@{proj\_identify}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_identify()}{proj\_identify()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$ proj\+\_\+identify (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{const char $\ast$const $\ast$}]{options,  }\item[{int $\ast$$\ast$}]{out\+\_\+confidence }\end{DoxyParamCaption})}



Identify the CRS with reference CRSs. 

The candidate CRSs are either hard-\/coded, or looked in the database when it is available.

Note that the implementation uses a set of heuristics to have a good compromise of successful identifications over execution time. It might miss legitimate matches in some circumstances.

The method returns a list of matching reference CRS, and the percentage (0-\/100) of confidence in the match. The list is sorted by decreasing confidence. 
\begin{DoxyItemize}
\item 100\% means that the name of the reference entry perfectly matches the CRS name, and both are equivalent. In which case a single result is returned. Note\+: in the case of a Geographic\+CRS whose axis order is implicit in the input definition (for example ESRI WKT), then axis order is ignored for the purpose of identification. That is the CRS built from GEOGCS\mbox{[}\char`\"{}\+GCS\+\_\+\+WGS\+\_\+1984\char`\"{},DATUM\mbox{[}\char`\"{}\+D\+\_\+\+WGS\+\_\+1984\char`\"{},SPHEROID\mbox{[}\char`\"{}\+WGS\+\_\+1984\char`\"{},6378137.\+0,298.\+257223563\mbox{]}\mbox{]}, PRIMEM\mbox{[}\char`\"{}\+Greenwich\char`\"{},0.\+0\mbox{]},UNIT\mbox{[}\char`\"{}\+Degree\char`\"{},0.\+0174532925199433\mbox{]}\mbox{]} will be identified to EPSG\+:4326, but will not pass a is\+Equivalent\+To(\+EPSG\+\_\+4326, util\+::\+IComparable\+::\+Criterion\+::\+EQUIVALENT) test, but rather is\+Equivalent\+To(\+EPSG\+\_\+4326, util\+::\+IComparable\+::\+Criterion\+::\+EQUIVALENT\+\_\+\+EXCEPT\+\_\+\+AXIS\+\_\+\+ORDER\+\_\+\+GEOGCRS)  
\item 90\% means that CRS are equivalent, but the names are not exactly the same. 
\item 70\% means that CRS are equivalent, but the names are not equivalent.  
\item 25\% means that the CRS are not equivalent, but there is some similarity in the names. 
\end{DoxyItemize}Other confidence values may be returned by some specialized implementations.

This is implemented for Geodetic\+CRS, Projected\+CRS, Vertical\+CRS and Compound\+CRS.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object of type CRS. Must not be NULL \\
\hline
{\em auth\+\_\+name} & Authority name, or NULL for all authorities \\
\hline
{\em options} & Placeholder for future options. Should be set to NULL. \\
\hline
{\em out\+\_\+confidence} & Output parameter. Pointer to an array of integers that will be allocated by the function and filled with the confidence values (0-\/100). There are as many elements in this array as \mbox{\hyperlink{group__iso19111__functions_ga645fa2f0ff64dcbf5cd4a0361d306014}{proj\+\_\+list\+\_\+get\+\_\+count()}} returns on the return value of this function. $\ast$confidence should be released with \mbox{\hyperlink{group__iso19111__functions_ga69e847fe98267d7d59d20c8442d4ab77}{proj\+\_\+int\+\_\+list\+\_\+destroy()}}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a list of matching reference CRS, or nullptr in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gadcafc50dcf519643cc9b360cb9943fcb}\label{group__iso19111__functions_gadcafc50dcf519643cc9b360cb9943fcb}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_insert\_object\_session\_create@{proj\_insert\_object\_session\_create}}
\index{proj\_insert\_object\_session\_create@{proj\_insert\_object\_session\_create}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_insert\_object\_session\_create()}{proj\_insert\_object\_session\_create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structPJ__INSERT__SESSION}{PJ\+\_\+\+INSERT\+\_\+\+SESSION}} $\ast$ proj\+\_\+insert\+\_\+object\+\_\+session\+\_\+create (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx }\end{DoxyParamCaption})}



Starts a session for \mbox{\hyperlink{group__iso19111__functions_gacb45f9123d0d55f18e8bea8b73bf9067}{proj\+\_\+get\+\_\+insert\+\_\+statements()}} 

Starts a new session for one or several calls to \mbox{\hyperlink{group__iso19111__functions_gacb45f9123d0d55f18e8bea8b73bf9067}{proj\+\_\+get\+\_\+insert\+\_\+statements()}}.

An insertion session guarantees that the inserted objects will not create conflicting intermediate objects.

The session must be stopped with \mbox{\hyperlink{group__iso19111__functions_gaec2ab39dea57acb2160daf089b5e3554}{proj\+\_\+insert\+\_\+object\+\_\+session\+\_\+destroy()}}.

Only one session may be active at a time for a given context.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the session, or NULL in case of error.
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gaec2ab39dea57acb2160daf089b5e3554}\label{group__iso19111__functions_gaec2ab39dea57acb2160daf089b5e3554}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_insert\_object\_session\_destroy@{proj\_insert\_object\_session\_destroy}}
\index{proj\_insert\_object\_session\_destroy@{proj\_insert\_object\_session\_destroy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_insert\_object\_session\_destroy()}{proj\_insert\_object\_session\_destroy()}}
{\footnotesize\ttfamily void proj\+\_\+insert\+\_\+object\+\_\+session\+\_\+destroy (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__INSERT__SESSION}{PJ\+\_\+\+INSERT\+\_\+\+SESSION}} $\ast$}]{session }\end{DoxyParamCaption})}



Stops an insertion session started with \mbox{\hyperlink{group__iso19111__functions_gadcafc50dcf519643cc9b360cb9943fcb}{proj\+\_\+insert\+\_\+object\+\_\+session\+\_\+create()}} 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em session} & The insertion session. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga127c2f37a3bc7535570c26e72b005f43}\label{group__iso19111__functions_ga127c2f37a3bc7535570c26e72b005f43}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_is\_crs@{proj\_is\_crs}}
\index{proj\_is\_crs@{proj\_is\_crs}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_is\_crs()}{proj\_is\_crs()}}
{\footnotesize\ttfamily int proj\+\_\+is\+\_\+crs (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Return whether an object is a CRS. 


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_gac821845a4a86f6dda55d8d2083e1e836}\label{group__iso19111__functions_gac821845a4a86f6dda55d8d2083e1e836}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_is\_deprecated@{proj\_is\_deprecated}}
\index{proj\_is\_deprecated@{proj\_is\_deprecated}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_is\_deprecated()}{proj\_is\_deprecated()}}
{\footnotesize\ttfamily int proj\+\_\+is\+\_\+deprecated (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj }\end{DoxyParamCaption})}



Return whether an object is deprecated. 


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if it is deprecated, FALSE otherwise 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gaeb8884c512c547adfb20bf649132cfc6}\label{group__iso19111__functions_gaeb8884c512c547adfb20bf649132cfc6}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_is\_equivalent\_to@{proj\_is\_equivalent\_to}}
\index{proj\_is\_equivalent\_to@{proj\_is\_equivalent\_to}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_is\_equivalent\_to()}{proj\_is\_equivalent\_to()}}
{\footnotesize\ttfamily int proj\+\_\+is\+\_\+equivalent\+\_\+to (\begin{DoxyParamCaption}\item[{const PJ $\ast$}]{obj,  }\item[{const PJ $\ast$}]{other,  }\item[{\mbox{\hyperlink{group__iso19111__types_ga654e7e400a70ad33bfbb23d9d1df39ee}{PJ\+\_\+\+COMPARISON\+\_\+\+CRITERION}}}]{criterion }\end{DoxyParamCaption})}



Return whether two objects are equivalent. 

Use \mbox{\hyperlink{group__iso19111__functions_gadd6e71f99a73b86afc5ced898cba126c}{proj\+\_\+is\+\_\+equivalent\+\_\+to\+\_\+with\+\_\+ctx()}} to be able to use database information.


\begin{DoxyParams}{Parameters}
{\em obj} & Object (must not be NULL) \\
\hline
{\em other} & Other object (must not be NULL) \\
\hline
{\em criterion} & Comparison criterion \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if they are equivalent 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gadd6e71f99a73b86afc5ced898cba126c}\label{group__iso19111__functions_gadd6e71f99a73b86afc5ced898cba126c}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_is\_equivalent\_to\_with\_ctx@{proj\_is\_equivalent\_to\_with\_ctx}}
\index{proj\_is\_equivalent\_to\_with\_ctx@{proj\_is\_equivalent\_to\_with\_ctx}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_is\_equivalent\_to\_with\_ctx()}{proj\_is\_equivalent\_to\_with\_ctx()}}
{\footnotesize\ttfamily int proj\+\_\+is\+\_\+equivalent\+\_\+to\+\_\+with\+\_\+ctx (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{obj,  }\item[{const PJ $\ast$}]{other,  }\item[{\mbox{\hyperlink{group__iso19111__types_ga654e7e400a70ad33bfbb23d9d1df39ee}{PJ\+\_\+\+COMPARISON\+\_\+\+CRITERION}}}]{criterion }\end{DoxyParamCaption})}



Return whether two objects are equivalent. 

Possibly using database to check for name aliases.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em obj} & Object (must not be NULL) \\
\hline
{\em other} & Other object (must not be NULL) \\
\hline
{\em criterion} & Comparison criterion \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if they are equivalent 
\end{DoxyReturn}
\begin{DoxySince}{Since}
6.\+3 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gaa1274c437a786f9064556c139d689d71}\label{group__iso19111__functions_gaa1274c437a786f9064556c139d689d71}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_list\_destroy@{proj\_list\_destroy}}
\index{proj\_list\_destroy@{proj\_list\_destroy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_list\_destroy()}{proj\_list\_destroy()}}
{\footnotesize\ttfamily void proj\+\_\+list\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$}]{result }\end{DoxyParamCaption})}



Drops a reference on the result set. 

This method should be called one and exactly one for each function returning a PJ\+\_\+\+OBJ\+\_\+\+LIST$\ast$


\begin{DoxyParams}{Parameters}
{\em result} & Object, or NULL. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_gac831ee02c8cdef03ced2ec07abcf07d3}\label{group__iso19111__functions_gac831ee02c8cdef03ced2ec07abcf07d3}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_list\_get@{proj\_list\_get}}
\index{proj\_list\_get@{proj\_list\_get}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_list\_get()}{proj\_list\_get()}}
{\footnotesize\ttfamily PJ $\ast$ proj\+\_\+list\+\_\+get (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$}]{result,  }\item[{int}]{index }\end{DoxyParamCaption})}



Return an object from the result set. 

The returned object must be unreferenced with proj\+\_\+destroy() after use. It should be used by at most one thread at a time.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em result} & Object of type \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} (must not be NULL) \\
\hline
{\em index} & Index \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new object that must be unreferenced with proj\+\_\+destroy(), or nullptr in case of error. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_ga645fa2f0ff64dcbf5cd4a0361d306014}\label{group__iso19111__functions_ga645fa2f0ff64dcbf5cd4a0361d306014}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_list\_get\_count@{proj\_list\_get\_count}}
\index{proj\_list\_get\_count@{proj\_list\_get\_count}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_list\_get\_count()}{proj\_list\_get\_count()}}
{\footnotesize\ttfamily int proj\+\_\+list\+\_\+get\+\_\+count (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} $\ast$}]{result }\end{DoxyParamCaption})}



Return the number of objects in the result set. 


\begin{DoxyParams}{Parameters}
{\em result} & Object of type \mbox{\hyperlink{structPJ__OBJ__LIST}{PJ\+\_\+\+OBJ\+\_\+\+LIST}} (must not be NULL) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga84662943acd6b3913e11e77ecb773d11}\label{group__iso19111__functions_ga84662943acd6b3913e11e77ecb773d11}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_destroy@{proj\_operation\_factory\_context\_destroy}}
\index{proj\_operation\_factory\_context\_destroy@{proj\_operation\_factory\_context\_destroy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_destroy()}{proj\_operation\_factory\_context\_destroy()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{ctx }\end{DoxyParamCaption})}



Drops a reference on an object. 

This method should be called one and exactly one for each function returning a PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT$\ast$


\begin{DoxyParams}{Parameters}
{\em ctx} & Object, or NULL. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga94cddeb4cf048dc9efdab60e35c0230a}\label{group__iso19111__functions_ga94cddeb4cf048dc9efdab60e35c0230a}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_allow\_ballpark\_transformations@{proj\_operation\_factory\_context\_set\_allow\_ballpark\_transformations}}
\index{proj\_operation\_factory\_context\_set\_allow\_ballpark\_transformations@{proj\_operation\_factory\_context\_set\_allow\_ballpark\_transformations}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_allow\_ballpark\_transformations()}{proj\_operation\_factory\_context\_set\_allow\_ballpark\_transformations()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+allow\+\_\+ballpark\+\_\+transformations (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{int}]{allow }\end{DoxyParamCaption})}



Set whether ballpark transformations are allowed. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em allow} & set to TRUE to allow ballpark transformations. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
7.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_ga0576d0803c28bf5d9283e4300756b9f5}\label{group__iso19111__functions_ga0576d0803c28bf5d9283e4300756b9f5}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_allow\_use\_intermediate\_crs@{proj\_operation\_factory\_context\_set\_allow\_use\_intermediate\_crs}}
\index{proj\_operation\_factory\_context\_set\_allow\_use\_intermediate\_crs@{proj\_operation\_factory\_context\_set\_allow\_use\_intermediate\_crs}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_allow\_use\_intermediate\_crs()}{proj\_operation\_factory\_context\_set\_allow\_use\_intermediate\_crs()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+allow\+\_\+use\+\_\+intermediate\+\_\+crs (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{\mbox{\hyperlink{group__iso19111__types_ga7c79b426947391654b6ef2bca4a83835}{PROJ\+\_\+\+INTERMEDIATE\+\_\+\+CRS\+\_\+\+USE}}}]{use }\end{DoxyParamCaption})}



Set whether an intermediate pivot CRS can be used for researching coordinate operations between a source and target CRS. 

Concretely if in the database there is an operation from A to C (or C to A), and another one from C to B (or B to C), but no direct operation between A and B, setting this parameter to true, allow chaining both operations.

The current implementation is limited to researching one intermediate step.

By default, with the IF\+\_\+\+NO\+\_\+\+DIRECT\+\_\+\+TRANSFORMATION strategy, all potential C candidates will be used if there is no direct transformation.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em use} & whether and how intermediate CRS may be used. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga6745312c4970bd4edfcc386a35590a34}\label{group__iso19111__functions_ga6745312c4970bd4edfcc386a35590a34}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_allowed\_intermediate\_crs@{proj\_operation\_factory\_context\_set\_allowed\_intermediate\_crs}}
\index{proj\_operation\_factory\_context\_set\_allowed\_intermediate\_crs@{proj\_operation\_factory\_context\_set\_allowed\_intermediate\_crs}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_allowed\_intermediate\_crs()}{proj\_operation\_factory\_context\_set\_allowed\_intermediate\_crs()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+allowed\+\_\+intermediate\+\_\+crs (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{const char $\ast$const $\ast$}]{list\+\_\+of\+\_\+auth\+\_\+name\+\_\+codes }\end{DoxyParamCaption})}



Restrict the potential pivot CRSs that can be used when trying to build a coordinate operation between two CRS that have no direct operation. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em list\+\_\+of\+\_\+auth\+\_\+name\+\_\+codes} & an array of strings NLL terminated, with the format \{ \char`\"{}auth\+\_\+name1\char`\"{}, \char`\"{}code1\char`\"{}, \char`\"{}auth\+\_\+name2\char`\"{}, \char`\"{}code2\char`\"{}, ... NULL \} \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga65a925cc0ae3098276d81f993adf3863}\label{group__iso19111__functions_ga65a925cc0ae3098276d81f993adf3863}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_area\_of\_interest@{proj\_operation\_factory\_context\_set\_area\_of\_interest}}
\index{proj\_operation\_factory\_context\_set\_area\_of\_interest@{proj\_operation\_factory\_context\_set\_area\_of\_interest}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_area\_of\_interest()}{proj\_operation\_factory\_context\_set\_area\_of\_interest()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+area\+\_\+of\+\_\+interest (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{double}]{west\+\_\+lon\+\_\+degree,  }\item[{double}]{south\+\_\+lat\+\_\+degree,  }\item[{double}]{east\+\_\+lon\+\_\+degree,  }\item[{double}]{north\+\_\+lat\+\_\+degree }\end{DoxyParamCaption})}



Set the desired area of interest for the resulting coordinate transformations. 

For an area of interest crossing the anti-\/meridian, west\+\_\+lon\+\_\+degree will be greater than east\+\_\+lon\+\_\+degree.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em west\+\_\+lon\+\_\+degree} & West longitude (in degrees). \\
\hline
{\em south\+\_\+lat\+\_\+degree} & South latitude (in degrees). \\
\hline
{\em east\+\_\+lon\+\_\+degree} & East longitude (in degrees). \\
\hline
{\em north\+\_\+lat\+\_\+degree} & North latitude (in degrees). \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_gaba2802de26f9c3488145e006bfa8c288}\label{group__iso19111__functions_gaba2802de26f9c3488145e006bfa8c288}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_area\_of\_interest\_name@{proj\_operation\_factory\_context\_set\_area\_of\_interest\_name}}
\index{proj\_operation\_factory\_context\_set\_area\_of\_interest\_name@{proj\_operation\_factory\_context\_set\_area\_of\_interest\_name}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_area\_of\_interest\_name()}{proj\_operation\_factory\_context\_set\_area\_of\_interest\_name()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+area\+\_\+of\+\_\+interest\+\_\+name (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{const char $\ast$}]{area\+\_\+name }\end{DoxyParamCaption})}



Set the name of the desired area of interest for the resulting coordinate transformations. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em area\+\_\+name} & Area name. Must be known of the database. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_gab679a8098a87c41952adeb3822f3b4d8}\label{group__iso19111__functions_gab679a8098a87c41952adeb3822f3b4d8}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_crs\_extent\_use@{proj\_operation\_factory\_context\_set\_crs\_extent\_use}}
\index{proj\_operation\_factory\_context\_set\_crs\_extent\_use@{proj\_operation\_factory\_context\_set\_crs\_extent\_use}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_crs\_extent\_use()}{proj\_operation\_factory\_context\_set\_crs\_extent\_use()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+crs\+\_\+extent\+\_\+use (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{\mbox{\hyperlink{group__iso19111__types_ga2223a725c58dab5bf93f20aecc9f03c5}{PROJ\+\_\+\+CRS\+\_\+\+EXTENT\+\_\+\+USE}}}]{use }\end{DoxyParamCaption})}



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). 

The default is PJ\+\_\+\+CRS\+\_\+\+EXTENT\+\_\+\+SMALLEST.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em use} & How source and target CRS extent should be used. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga9fd369cc4f25e52acf0a6a21d5f13c2f}\label{group__iso19111__functions_ga9fd369cc4f25e52acf0a6a21d5f13c2f}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_desired\_accuracy@{proj\_operation\_factory\_context\_set\_desired\_accuracy}}
\index{proj\_operation\_factory\_context\_set\_desired\_accuracy@{proj\_operation\_factory\_context\_set\_desired\_accuracy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_desired\_accuracy()}{proj\_operation\_factory\_context\_set\_desired\_accuracy()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+desired\+\_\+accuracy (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{double}]{accuracy }\end{DoxyParamCaption})}



Set the desired accuracy of the resulting coordinate transformations. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em accuracy} & Accuracy in meter (or 0 to disable the filter). \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga58a6a250b7c29d4f6efb023fd91dabf2}\label{group__iso19111__functions_ga58a6a250b7c29d4f6efb023fd91dabf2}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_discard\_superseded@{proj\_operation\_factory\_context\_set\_discard\_superseded}}
\index{proj\_operation\_factory\_context\_set\_discard\_superseded@{proj\_operation\_factory\_context\_set\_discard\_superseded}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_discard\_superseded()}{proj\_operation\_factory\_context\_set\_discard\_superseded()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+discard\+\_\+superseded (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{int}]{discard }\end{DoxyParamCaption})}



Set whether transformations that are superseded (but not deprecated) should be discarded. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em discard} & superseded crs or not \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_gaa6d4402c5f2cf18da3269fdd4bdabd1c}\label{group__iso19111__functions_gaa6d4402c5f2cf18da3269fdd4bdabd1c}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_grid\_availability\_use@{proj\_operation\_factory\_context\_set\_grid\_availability\_use}}
\index{proj\_operation\_factory\_context\_set\_grid\_availability\_use@{proj\_operation\_factory\_context\_set\_grid\_availability\_use}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_grid\_availability\_use()}{proj\_operation\_factory\_context\_set\_grid\_availability\_use()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+grid\+\_\+availability\+\_\+use (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{\mbox{\hyperlink{group__iso19111__types_ga8a63b764c6b5ad06b35f7fdf81bcaa93}{PROJ\+\_\+\+GRID\+\_\+\+AVAILABILITY\+\_\+\+USE}}}]{use }\end{DoxyParamCaption})}



Set how grid availability is used. 

The default is USE\+\_\+\+FOR\+\_\+\+SORTING.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em use} & how grid availability is used. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga98fd7b9b60687e40484e7f669bb44696}\label{group__iso19111__functions_ga98fd7b9b60687e40484e7f669bb44696}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_spatial\_criterion@{proj\_operation\_factory\_context\_set\_spatial\_criterion}}
\index{proj\_operation\_factory\_context\_set\_spatial\_criterion@{proj\_operation\_factory\_context\_set\_spatial\_criterion}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_spatial\_criterion()}{proj\_operation\_factory\_context\_set\_spatial\_criterion()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+spatial\+\_\+criterion (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{\mbox{\hyperlink{group__iso19111__types_gadfc8adff35d141ac9c3c27f457f25be1}{PROJ\+\_\+\+SPATIAL\+\_\+\+CRITERION}}}]{criterion }\end{DoxyParamCaption})}



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. 

The default is PROJ\+\_\+\+SPATIAL\+\_\+\+CRITERION\+\_\+\+STRICT\+\_\+\+CONTAINMENT.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em criterion} & spatial criterion to use \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga102372fec6cfaa23798bc64ecb91292c}\label{group__iso19111__functions_ga102372fec6cfaa23798bc64ecb91292c}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_operation\_factory\_context\_set\_use\_proj\_alternative\_grid\_names@{proj\_operation\_factory\_context\_set\_use\_proj\_alternative\_grid\_names}}
\index{proj\_operation\_factory\_context\_set\_use\_proj\_alternative\_grid\_names@{proj\_operation\_factory\_context\_set\_use\_proj\_alternative\_grid\_names}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_operation\_factory\_context\_set\_use\_proj\_alternative\_grid\_names()}{proj\_operation\_factory\_context\_set\_use\_proj\_alternative\_grid\_names()}}
{\footnotesize\ttfamily void proj\+\_\+operation\+\_\+factory\+\_\+context\+\_\+set\+\_\+use\+\_\+proj\+\_\+alternative\+\_\+grid\+\_\+names (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{structPJ__OPERATION__FACTORY__CONTEXT}{PJ\+\_\+\+OPERATION\+\_\+\+FACTORY\+\_\+\+CONTEXT}} $\ast$}]{factory\+\_\+ctx,  }\item[{int}]{use\+PROJNames }\end{DoxyParamCaption})}



Set whether PROJ alternative grid names should be substituted to the official authority names. 

The default is true.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em factory\+\_\+ctx} & Operation factory context. must not be NULL \\
\hline
{\em use\+PROJNames} & whether PROJ alternative grid names should be used \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__iso19111__functions_ga14a20c449ab108771eed62487b130829}\label{group__iso19111__functions_ga14a20c449ab108771eed62487b130829}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_prime\_meridian\_get\_parameters@{proj\_prime\_meridian\_get\_parameters}}
\index{proj\_prime\_meridian\_get\_parameters@{proj\_prime\_meridian\_get\_parameters}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_prime\_meridian\_get\_parameters()}{proj\_prime\_meridian\_get\_parameters()}}
{\footnotesize\ttfamily int proj\+\_\+prime\+\_\+meridian\+\_\+get\+\_\+parameters (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{prime\+\_\+meridian,  }\item[{double $\ast$}]{out\+\_\+longitude,  }\item[{double $\ast$}]{out\+\_\+unit\+\_\+conv\+\_\+factor,  }\item[{const char $\ast$$\ast$}]{out\+\_\+unit\+\_\+name }\end{DoxyParamCaption})}



Return prime meridian parameters. 


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em prime\+\_\+meridian} & Object of type Prime\+Meridian (must not be NULL) \\
\hline
{\em out\+\_\+longitude} & Pointer to a value to store the longitude of the prime meridian, in its native unit. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+conv\+\_\+factor} & Pointer to a value to store the conversion factor of the prime meridian longitude unit to radian. or NULL \\
\hline
{\em out\+\_\+unit\+\_\+name} & Pointer to a string value to store the unit name. or NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__iso19111__functions_gadeab7bc5cb9fad8e72e056f1de6926f6}\label{group__iso19111__functions_gadeab7bc5cb9fad8e72e056f1de6926f6}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_string\_destroy@{proj\_string\_destroy}}
\index{proj\_string\_destroy@{proj\_string\_destroy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_string\_destroy()}{proj\_string\_destroy()}}
{\footnotesize\ttfamily void proj\+\_\+string\+\_\+destroy (\begin{DoxyParamCaption}\item[{char $\ast$}]{str }\end{DoxyParamCaption})}



Free a string. 

Only to be used with functions that document using this function.


\begin{DoxyParams}{Parameters}
{\em str} & String to free.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}\label{group__iso19111__functions_gab2b385a4e935d8e0aadd32411ed7c06e}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_string\_list\_destroy@{proj\_string\_list\_destroy}}
\index{proj\_string\_list\_destroy@{proj\_string\_list\_destroy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_string\_list\_destroy()}{proj\_string\_list\_destroy()}}
{\footnotesize\ttfamily void proj\+\_\+string\+\_\+list\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__iso19111__types_gab30fdab04c7368a72112f4097177f514}{PROJ\+\_\+\+STRING\+\_\+\+LIST}}}]{list }\end{DoxyParamCaption})}

Free a list of NULL terminated strings. \mbox{\Hypertarget{group__iso19111__functions_ga69b505fcea7739eed09cf4142eafadcb}\label{group__iso19111__functions_ga69b505fcea7739eed09cf4142eafadcb}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_suggests\_code\_for@{proj\_suggests\_code\_for}}
\index{proj\_suggests\_code\_for@{proj\_suggests\_code\_for}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_suggests\_code\_for()}{proj\_suggests\_code\_for()}}
{\footnotesize\ttfamily char $\ast$ proj\+\_\+suggests\+\_\+code\+\_\+for (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const PJ $\ast$}]{object,  }\item[{const char $\ast$}]{authority,  }\item[{int}]{numeric\+\_\+code,  }\item[{const char $\ast$const $\ast$}]{options }\end{DoxyParamCaption})}



Suggests a database code for the passed object. 

Supported type of objects are Prime\+Meridian, Ellipsoid, Datum, Datum\+Ensemble, Geodetic\+CRS, Projected\+CRS, Vertical\+CRS, Compound\+CRS, Bound\+CRS, Conversion.


\begin{DoxyParams}{Parameters}
{\em ctx} & PROJ context, or NULL for default context \\
\hline
{\em object} & Object for which to suggest a code. \\
\hline
{\em authority} & Authority name into which the object will be inserted. \\
\hline
{\em numeric\+\_\+code} & Whether the code should be numeric, or derived from the object name. \\
\hline
{\em options} & NULL terminated list of options, or NULL. No options are supported currently. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the suggested code, that is guaranteed to not conflict with an existing one (to be freed with proj\+\_\+string\+\_\+destroy), or nullptr in case of error.
\end{DoxyReturn}
\begin{DoxySince}{Since}
8.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gac92c073d80a23c8e36b0405287899e65}\label{group__iso19111__functions_gac92c073d80a23c8e36b0405287899e65}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_unit\_list\_destroy@{proj\_unit\_list\_destroy}}
\index{proj\_unit\_list\_destroy@{proj\_unit\_list\_destroy}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_unit\_list\_destroy()}{proj\_unit\_list\_destroy()}}
{\footnotesize\ttfamily void proj\+\_\+unit\+\_\+list\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structPROJ__UNIT__INFO}{PROJ\+\_\+\+UNIT\+\_\+\+INFO}} $\ast$$\ast$}]{list }\end{DoxyParamCaption})}



Destroy the result returned by \mbox{\hyperlink{group__iso19111__functions_gad9912220346fc8c2aea7170dbf62132a}{proj\+\_\+get\+\_\+units\+\_\+from\+\_\+database()}}. 

\begin{DoxySince}{Since}
7.\+1 
\end{DoxySince}
\mbox{\Hypertarget{group__iso19111__functions_gac34dbd9d6b49aaf67ab62bf3891ab003}\label{group__iso19111__functions_gac34dbd9d6b49aaf67ab62bf3891ab003}} 
\index{Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}!proj\_uom\_get\_info\_from\_database@{proj\_uom\_get\_info\_from\_database}}
\index{proj\_uom\_get\_info\_from\_database@{proj\_uom\_get\_info\_from\_database}!Binding in C of basic methods from the C++ API@{Binding in C of basic methods from the C++ API}}
\doxysubsubsection{\texorpdfstring{proj\_uom\_get\_info\_from\_database()}{proj\_uom\_get\_info\_from\_database()}}
{\footnotesize\ttfamily int proj\+\_\+uom\+\_\+get\+\_\+info\+\_\+from\+\_\+database (\begin{DoxyParamCaption}\item[{PJ\+\_\+\+CONTEXT $\ast$}]{ctx,  }\item[{const char $\ast$}]{auth\+\_\+name,  }\item[{const char $\ast$}]{code,  }\item[{const char $\ast$$\ast$}]{out\+\_\+name,  }\item[{double $\ast$}]{out\+\_\+conv\+\_\+factor,  }\item[{const char $\ast$$\ast$}]{out\+\_\+category }\end{DoxyParamCaption})}



Get information for a unit of measure from a database lookup. 


\begin{DoxyParams}{Parameters}
{\em ctx} & Context, or NULL for default context. \\
\hline
{\em auth\+\_\+name} & Authority name (must not be NULL) \\
\hline
{\em code} & Unit of measure code (must not be NULL) \\
\hline
{\em out\+\_\+name} & Pointer to a string value to store the parameter name. or NULL. This value remains valid until the next call to \mbox{\hyperlink{group__iso19111__functions_gac34dbd9d6b49aaf67ab62bf3891ab003}{proj\+\_\+uom\+\_\+get\+\_\+info\+\_\+from\+\_\+database()}} or the context destruction. \\
\hline
{\em out\+\_\+conv\+\_\+factor} & Pointer to a value to store the conversion factor of the prime meridian longitude unit to radian. or NULL \\
\hline
{\em out\+\_\+category} & Pointer to a string value to store the parameter name. or NULL. This value might be \char`\"{}unknown\char`\"{}, \char`\"{}none\char`\"{}, \char`\"{}linear\char`\"{}, \char`\"{}linear\+\_\+per\+\_\+time\char`\"{}, \char`\"{}angular\char`\"{}, \char`\"{}angular\+\_\+per\+\_\+time\char`\"{}, \char`\"{}scale\char`\"{}, \char`\"{}scale\+\_\+per\+\_\+time\char`\"{}, \char`\"{}time\char`\"{}, \char`\"{}parametric\char`\"{} or \char`\"{}parametric\+\_\+per\+\_\+time\char`\"{} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE in case of success 
\end{DoxyReturn}
