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


A coordinate reference system describing the position of points through two or more independent single coordinate reference systems.  




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



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


Collaboration diagram for osgeo\+::proj\+::crs\+::Compound\+CRS\+:
% FIG 1
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} $>$ \& \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS_a6456991ad800f07b6905b6215ad3dd7c}{component\+Reference\+Systems}} ()
\begin{DoxyCompactList}\small\item\em Return the components of a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}}. \end{DoxyCompactList}\item 
std\+::list$<$ std\+::pair$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a5a4f97e589c9601364645cb31b90447e}{Compound\+CRSNNPtr}}, int $>$ $>$ \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS_a190f818befad8954ab2cbca8008d47f9}{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}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a5a4f97e589c9601364645cb31b90447e}{Compound\+CRSNNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS_a1f1734f7d5f6a192df941d13a87d0bb5}{create}} (const \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util\+::\+Property\+Map}} \&properties, const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} $>$ \&components)
\begin{DoxyCompactList}\small\item\em Instantiate a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}} from a vector of \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
A coordinate reference system describing the position of points through two or more independent single coordinate reference systems. 

\begin{DoxyNote}{Note}
Two coordinate reference systems are independent of each other if coordinate values in one cannot be converted or transformed into coordinate values in the other.

As a departure to \mbox{\hyperlink{general_doc_ISO_19111_2019}{ISO 19111\+:2019}}, we allow to build a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}} from \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} objects, whereas ISO19111\+:2019 restricts the components to \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1SingleCRS}{Single\+CRS}}.
\end{DoxyNote}
\begin{DoxyRemark}{Remarks}
Implements \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+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_1CompoundCRS_a6456991ad800f07b6905b6215ad3dd7c}\label{classosgeo_1_1proj_1_1crs_1_1CompoundCRS_a6456991ad800f07b6905b6215ad3dd7c}} 
\index{osgeo::proj::crs::CompoundCRS@{osgeo::proj::crs::CompoundCRS}!componentReferenceSystems@{componentReferenceSystems}}
\index{componentReferenceSystems@{componentReferenceSystems}!osgeo::proj::crs::CompoundCRS@{osgeo::proj::crs::CompoundCRS}}
\doxysubsubsection{\texorpdfstring{componentReferenceSystems()}{componentReferenceSystems()}}
{\footnotesize\ttfamily const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} $>$ \& osgeo\+::proj\+::crs\+::\+Compound\+CRS\+::component\+Reference\+Systems (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Return the components of a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}}. 

\begin{DoxyReturn}{Returns}
the components. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CompoundCRS_a1f1734f7d5f6a192df941d13a87d0bb5}\label{classosgeo_1_1proj_1_1crs_1_1CompoundCRS_a1f1734f7d5f6a192df941d13a87d0bb5}} 
\index{osgeo::proj::crs::CompoundCRS@{osgeo::proj::crs::CompoundCRS}!create@{create}}
\index{create@{create}!osgeo::proj::crs::CompoundCRS@{osgeo::proj::crs::CompoundCRS}}
\doxysubsubsection{\texorpdfstring{create()}{create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a5a4f97e589c9601364645cb31b90447e}{Compound\+CRSNNPtr}} osgeo\+::proj\+::crs\+::\+Compound\+CRS\+::create (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util\+::\+Property\+Map}} \&}]{properties,  }\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{CRSNNPtr}} $>$ \&}]{components }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Instantiate a \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}} from a vector of \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}. 


\begin{DoxyParams}{Parameters}
{\em properties} & See \mbox{\hyperlink{general_doc_general_properties}{General properties}}. At minimum the name should be defined. \\
\hline
{\em components} & the component \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} of the \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
new \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CompoundCRS}{Compound\+CRS}}. 
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1InvalidCompoundCRSException}{Invalid\+Compound\+CRSException}}} & \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1crs_1_1CompoundCRS_a190f818befad8954ab2cbca8008d47f9}\label{classosgeo_1_1proj_1_1crs_1_1CompoundCRS_a190f818befad8954ab2cbca8008d47f9}} 
\index{osgeo::proj::crs::CompoundCRS@{osgeo::proj::crs::CompoundCRS}!identify@{identify}}
\index{identify@{identify}!osgeo::proj::crs::CompoundCRS@{osgeo::proj::crs::CompoundCRS}}
\doxysubsubsection{\texorpdfstring{identify()}{identify()}}
{\footnotesize\ttfamily std\+::list$<$ std\+::pair$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a5a4f97e589c9601364645cb31b90447e}{Compound\+CRSNNPtr}}, int $>$ $>$ osgeo\+::proj\+::crs\+::\+Compound\+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 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.

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. 90\% means that \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} are equivalent, but the names are not exactly the same. 70\% means that \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}} are equivalent (equivalent horizontal and vertical \mbox{\hyperlink{classosgeo_1_1proj_1_1crs_1_1CRS}{CRS}}), but the names are not equivalent. 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.


\begin{DoxyParams}{Parameters}
{\em authority\+Factory} & Authority factory (if null, will return an empty list) \\
\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}


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}
