\hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS}{}\doxysection{osgeo\+::proj\+::crs\+::CRS Class Reference}
\label{classosgeo_1_1proj_1_1crs_1_1CRS}\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}


Abstract class modelling a coordinate reference system which is usually single but may be compound.  




{\ttfamily \#include $<$crs.\+hpp$>$}



Inheritance diagram for osgeo\+::proj\+::crs\+::CRS\+:
% FIG 0


Collaboration diagram for osgeo\+::proj\+::crs\+::CRS\+:
% FIG 1
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_aa9e4993f471ac0472848bdd65299da80}{Geodetic\+CRSPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_add42ad4415d6dd421180641173d7c47b}{extract\+Geodetic\+CRS}} () const
\begin{DoxyCompactList}\small\item\em Return the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeodeticCRS}{Geodetic\+CRS}} of the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_ae1cebff55fa4231577625e1dc8fdb10b}{Geographic\+CRSPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_a0fa2434791d80a2df54fd29c7ff55663}{extract\+Geographic\+CRS}} () const
\begin{DoxyCompactList}\small\item\em Return the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeographicCRS}{Geographic\+CRS}} of the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a6cf5e186b7927fd6b7f3f346091eb362}{Vertical\+CRSPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_af9b0501894b437bf6953d18d23eb240d}{extract\+Vertical\+CRS}} () const
\begin{DoxyCompactList}\small\item\em Return the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1VerticalCRS}{Vertical\+CRS}} of the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_a92b68b4325da77805063459b66119582}{create\+Bound\+CRSTo\+WGS84\+If\+Possible}} (const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&db\+Context, \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationContext_ad2d059465e058f6001288334b814e406}{operation\+::\+Coordinate\+Operation\+Context\+::\+Intermediate\+CRSUse}} allow\+Intermediate\+CRSUse) const
\begin{DoxyCompactList}\small\item\em Returns potentially a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}}, with a transformation to EPSG\+:4326, wrapping this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_a9ea91f9a3300796dc9c9be50fc391a60}{strip\+Vertical\+Component}} () const
\begin{DoxyCompactList}\small\item\em Returns a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} whose coordinate system does not contain a vertical component. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a1a3d2b09b4f7fb118fb3575ea319cf78}{Bound\+CRSPtr}} \& \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_a67348266d87aada22439aac94c8c35f0}{canonical\+Bound\+CRS}} ()
\begin{DoxyCompactList}\small\item\em Return the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}} potentially attached to this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. \end{DoxyCompactList}\item 
std\+::list$<$ std\+::pair$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}}, int $>$ $>$ \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_a65bf65577ce35b74d97a2678aaf63ed9}{identify}} (const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a6700bf116007d342bc35655d54d4c437}{io\+::\+Authority\+Factory\+Ptr}} \&authority\+Factory) const
\begin{DoxyCompactList}\small\item\em Identify the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} with reference CRSs. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_a45f185948107a38f2ad2970eeadca7d0}\label{classosgeo_1_1proj_1_1crs_1_1CRS_a45f185948107a38f2ad2970eeadca7d0}} 
std\+::list$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} $>$ {\bfseries get\+Non\+Deprecated} (const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{io\+::\+Database\+Context\+NNPtr}} \&db\+Context) const
\begin{DoxyCompactList}\small\item\em Return CRSs that are non-\/deprecated substitutes for the current \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_ab91b917014ee3b3c00e732a218a97517}{promote\+To3D}} (const std\+::string \&new\+Name, const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&db\+Context) const
\begin{DoxyCompactList}\small\item\em Return a variant of this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} \char`\"{}promoted\char`\"{} to a 3D one, if not already the case. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS_a3a4b43c76d25e053b815c7c859352c07}{demote\+To2D}} (const std\+::string \&new\+Name, const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&db\+Context) const
\begin{DoxyCompactList}\small\item\em Return a variant of this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} \char`\"{}demoted\char`\"{} to a 2D one, if not already the case. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
Abstract class modelling a coordinate reference system which is usually single but may be compound. 

\begin{DoxyRemark}{Remarks}
Implements \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} from \mbox{\hyperlink{general_doc_ISO_19111_2019}{ISO 19111\+:2019}} 
\end{DoxyRemark}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_a67348266d87aada22439aac94c8c35f0}\label{classosgeo_1_1proj_1_1crs_1_1CRS_a67348266d87aada22439aac94c8c35f0}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!canonicalBoundCRS@{canonicalBoundCRS}}
\index{canonicalBoundCRS@{canonicalBoundCRS}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{canonicalBoundCRS()}{canonicalBoundCRS()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a1a3d2b09b4f7fb118fb3575ea319cf78}{Bound\+CRSPtr}} \& osgeo\+::proj\+::crs\+::\+CRS\+::canonical\+Bound\+CRS (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Return the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}} potentially attached to this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. 

In the case this method is called on a object returned by \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS_abebe66528b75abf79c73d199c102d721}{Bound\+CRS\+::base\+CRSWith\+Canonical\+Bound\+CRS()}}, this method will return this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}}

\begin{DoxyReturn}{Returns}
a Bound\+CRSPtr, that might be null. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_a92b68b4325da77805063459b66119582}\label{classosgeo_1_1proj_1_1crs_1_1CRS_a92b68b4325da77805063459b66119582}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!createBoundCRSToWGS84IfPossible@{createBoundCRSToWGS84IfPossible}}
\index{createBoundCRSToWGS84IfPossible@{createBoundCRSToWGS84IfPossible}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{createBoundCRSToWGS84IfPossible()}{createBoundCRSToWGS84IfPossible()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} osgeo\+::proj\+::crs\+::\+CRS\+::create\+Bound\+CRSTo\+WGS84\+If\+Possible (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&}]{db\+Context,  }\item[{\mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationContext_ad2d059465e058f6001288334b814e406}{operation\+::\+Coordinate\+Operation\+Context\+::\+Intermediate\+CRSUse}}}]{allow\+Intermediate\+CRSUse }\end{DoxyParamCaption}) const}



Returns potentially a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}}, with a transformation to EPSG\+:4326, wrapping this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. 

If no such \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}} is possible, the object will be returned.

The purpose of this method is to be able to format a PROJ.\+4 string with a +towgs84 parameter or a WKT1\+:GDAL string with a TOWGS node.

This method will fetch the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeographicCRS}{Geographic\+CRS}} of this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} and find a transformation to EPSG\+:4326 using the domain of the validity of the main \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}, and there\textquotesingle{}s only one Helmert transformation.

\begin{DoxyReturn}{Returns}
a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_a3a4b43c76d25e053b815c7c859352c07}\label{classosgeo_1_1proj_1_1crs_1_1CRS_a3a4b43c76d25e053b815c7c859352c07}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!demoteTo2D@{demoteTo2D}}
\index{demoteTo2D@{demoteTo2D}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{demoteTo2D()}{demoteTo2D()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} osgeo\+::proj\+::crs\+::\+CRS\+::demote\+To2D (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{new\+Name,  }\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&}]{db\+Context }\end{DoxyParamCaption}) const}



Return a variant of this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} \char`\"{}demoted\char`\"{} to a 2D one, if not already the case. 


\begin{DoxyParams}{Parameters}
{\em new\+Name} & Name of the new \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. If empty, \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject_a2294fccce17a073461428e6b229ea8d8}{name\+Str()}} will be used. \\
\hline
{\em db\+Context} & Database context to look for potentially already registered 2D \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. May be nullptr. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} demoted to 2D, or the current one if already 2D or not applicable. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
6.\+3 
\end{DoxySince}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_add42ad4415d6dd421180641173d7c47b}\label{classosgeo_1_1proj_1_1crs_1_1CRS_add42ad4415d6dd421180641173d7c47b}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!extractGeodeticCRS@{extractGeodeticCRS}}
\index{extractGeodeticCRS@{extractGeodeticCRS}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{extractGeodeticCRS()}{extractGeodeticCRS()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_aa9e4993f471ac0472848bdd65299da80}{Geodetic\+CRSPtr}} osgeo\+::proj\+::crs\+::\+CRS\+::extract\+Geodetic\+CRS (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Return the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeodeticCRS}{Geodetic\+CRS}} of the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. 

Returns the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeodeticCRS}{Geodetic\+CRS}} contained in a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. This works currently with input parameters of type \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeodeticCRS}{Geodetic\+CRS}} or derived, \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1ProjectedCRS}{Projected\+CRS}}, \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}} or \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}}.

\begin{DoxyReturn}{Returns}
a Geodetic\+CRSPtr, that might be null. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_a0fa2434791d80a2df54fd29c7ff55663}\label{classosgeo_1_1proj_1_1crs_1_1CRS_a0fa2434791d80a2df54fd29c7ff55663}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!extractGeographicCRS@{extractGeographicCRS}}
\index{extractGeographicCRS@{extractGeographicCRS}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{extractGeographicCRS()}{extractGeographicCRS()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_ae1cebff55fa4231577625e1dc8fdb10b}{Geographic\+CRSPtr}} osgeo\+::proj\+::crs\+::\+CRS\+::extract\+Geographic\+CRS (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Return the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeographicCRS}{Geographic\+CRS}} of the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. 

Returns the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeographicCRS}{Geographic\+CRS}} contained in a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. This works currently with input parameters of type \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeographicCRS}{Geographic\+CRS}} or derived, \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1ProjectedCRS}{Projected\+CRS}}, \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}} or \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}}.

\begin{DoxyReturn}{Returns}
a Geographic\+CRSPtr, that might be null. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_af9b0501894b437bf6953d18d23eb240d}\label{classosgeo_1_1proj_1_1crs_1_1CRS_af9b0501894b437bf6953d18d23eb240d}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!extractVerticalCRS@{extractVerticalCRS}}
\index{extractVerticalCRS@{extractVerticalCRS}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{extractVerticalCRS()}{extractVerticalCRS()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a6cf5e186b7927fd6b7f3f346091eb362}{Vertical\+CRSPtr}} osgeo\+::proj\+::crs\+::\+CRS\+::extract\+Vertical\+CRS (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Return the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1VerticalCRS}{Vertical\+CRS}} of the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. 

Returns the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1VerticalCRS}{Vertical\+CRS}} contained in a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. This works currently with input parameters of type \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1VerticalCRS}{Vertical\+CRS}} or derived, \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}} or \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1BoundCRS}{Bound\+CRS}}.

\begin{DoxyReturn}{Returns}
a Vertical\+CRSPtr, that might be null. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_a65bf65577ce35b74d97a2678aaf63ed9}\label{classosgeo_1_1proj_1_1crs_1_1CRS_a65bf65577ce35b74d97a2678aaf63ed9}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!identify@{identify}}
\index{identify@{identify}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{identify()}{identify()}}
{\footnotesize\ttfamily std\+::list$<$ std\+::pair$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}}, int $>$ $>$ osgeo\+::proj\+::crs\+::\+CRS\+::identify (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a6700bf116007d342bc35655d54d4c437}{io\+::\+Authority\+Factory\+Ptr}} \&}]{authority\+Factory }\end{DoxyParamCaption}) const}



Identify the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} with reference CRSs. 

The candidate CRSs are either hard-\/coded, or looked in the database when authority\+Factory is not null.

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 \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{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 \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} name, and both are equivalent. In which case a single result is returned. Note\+: in the case of a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeographicCRS}{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 \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{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 \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} are equivalent, but the names are not exactly the same. 
\item 70\% means that \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} are equivalent), but the names do not match at all. 
\item 25\% means that the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{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 \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1GeodeticCRS}{Geodetic\+CRS}}, \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1ProjectedCRS}{Projected\+CRS}}, \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1VerticalCRS}{Vertical\+CRS}} and \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}}.


\begin{DoxyParams}{Parameters}
{\em authority\+Factory} & Authority factory (or null, but degraded functionality) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a list of matching reference \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}, and the percentage (0-\/100) of confidence in the match. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_ab91b917014ee3b3c00e732a218a97517}\label{classosgeo_1_1proj_1_1crs_1_1CRS_ab91b917014ee3b3c00e732a218a97517}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!promoteTo3D@{promoteTo3D}}
\index{promoteTo3D@{promoteTo3D}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{promoteTo3D()}{promoteTo3D()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} osgeo\+::proj\+::crs\+::\+CRS\+::promote\+To3D (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{new\+Name,  }\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&}]{db\+Context }\end{DoxyParamCaption}) const}



Return a variant of this \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} \char`\"{}promoted\char`\"{} to a 3D one, if not already the case. 

The new axis will be ellipsoidal height, oriented upwards, and with metre units.


\begin{DoxyParams}{Parameters}
{\em new\+Name} & Name of the new \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. If empty, \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1IdentifiedObject_a2294fccce17a073461428e6b229ea8d8}{name\+Str()}} will be used. \\
\hline
{\em db\+Context} & Database context to look for potentially already registered 3D \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. May be nullptr. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} promoted to 3D, or the current one if already 3D or not applicable. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
6.\+3 
\end{DoxySince}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CRS_a9ea91f9a3300796dc9c9be50fc391a60}\label{classosgeo_1_1proj_1_1crs_1_1CRS_a9ea91f9a3300796dc9c9be50fc391a60}} 
\index{osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}!stripVerticalComponent@{stripVerticalComponent}}
\index{stripVerticalComponent@{stripVerticalComponent}!osgeo::proj::crs::CRS@{osgeo::proj::crs::CRS}}
\doxysubsubsection{\texorpdfstring{stripVerticalComponent()}{stripVerticalComponent()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} osgeo\+::proj\+::crs\+::\+CRS\+::strip\+Vertical\+Component (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Returns a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} whose coordinate system does not contain a vertical component. 

\begin{DoxyReturn}{Returns}
a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. 
\end{DoxyReturn}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
include/proj/crs.\+hpp\item 
src/iso19111/crs.\+cpp\end{DoxyCompactItemize}
