\hypertarget{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory}{}\doxysection{osgeo\+::proj\+::operation\+::Coordinate\+Operation\+Factory Class Reference}
\label{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory}\index{osgeo::proj::operation::CoordinateOperationFactory@{osgeo::proj::operation::CoordinateOperationFactory}}


Creates coordinate operations. This factory is capable to find coordinate transformations or conversions between two coordinate reference systems.  




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

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_ac592ffb0e397141bd99fad0f17cdcde9}{Coordinate\+Operation\+Ptr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a0af57ca3d47f4e89f85039d224265813}{create\+Operation}} (const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs\+::\+CRSNNPtr}} \&source\+CRS, const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs\+::\+CRSNNPtr}} \&target\+CRS) const
\begin{DoxyCompactList}\small\item\em Find a \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{Coordinate\+Operation}} from source\+CRS to target\+CRS. \end{DoxyCompactList}\item 
std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} $>$ \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a7ce96b5f24a567dfcf15bc6a37229aa7}{create\+Operations}} (const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs\+::\+CRSNNPtr}} \&source\+CRS, const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs\+::\+CRSNNPtr}} \&target\+CRS, const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a515bdd2c877b52861c1b1e423f5dd908}{Coordinate\+Operation\+Context\+NNPtr}} \&context) const
\begin{DoxyCompactList}\small\item\em Find a list of \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{Coordinate\+Operation}} from source\+CRS to target\+CRS. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a7c98ff0ca04693c1001fc74540267c72}\label{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a7c98ff0ca04693c1001fc74540267c72}} 
static \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_aadf4148931c4c7d5f881fa94decca98c}{Coordinate\+Operation\+Factory\+NNPtr}} {\bfseries create} ()
\begin{DoxyCompactList}\small\item\em Instantiate a \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory}{Coordinate\+Operation\+Factory}}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Creates coordinate operations. This factory is capable to find coordinate transformations or conversions between two coordinate reference systems. 

\begin{DoxyRemark}{Remarks}
Implements (partially) \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory}{Coordinate\+Operation\+Factory}} from \mbox{\hyperlink{general_doc_GeoAPI}{Geo\+API}} 
\end{DoxyRemark}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a0af57ca3d47f4e89f85039d224265813}\label{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a0af57ca3d47f4e89f85039d224265813}} 
\index{osgeo::proj::operation::CoordinateOperationFactory@{osgeo::proj::operation::CoordinateOperationFactory}!createOperation@{createOperation}}
\index{createOperation@{createOperation}!osgeo::proj::operation::CoordinateOperationFactory@{osgeo::proj::operation::CoordinateOperationFactory}}
\doxysubsubsection{\texorpdfstring{createOperation()}{createOperation()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_ac592ffb0e397141bd99fad0f17cdcde9}{Coordinate\+Operation\+Ptr}} osgeo\+::proj\+::operation\+::\+Coordinate\+Operation\+Factory\+::create\+Operation (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs\+::\+CRSNNPtr}} \&}]{source\+CRS,  }\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs\+::\+CRSNNPtr}} \&}]{target\+CRS }\end{DoxyParamCaption}) const}



Find a \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{Coordinate\+Operation}} from source\+CRS to target\+CRS. 

This is a helper of \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a7ce96b5f24a567dfcf15bc6a37229aa7}{create\+Operations()}}, using a coordinate operation context with no authority factory (so no catalog searching is done), no desired accuracy and no area of interest. This returns the first operation of the result set of \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a7ce96b5f24a567dfcf15bc6a37229aa7}{create\+Operations()}}, or null if none found.


\begin{DoxyParams}{Parameters}
{\em source\+CRS} & source CRS. \\
\hline
{\em target\+CRS} & source CRS. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{Coordinate\+Operation}} or nullptr. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a7ce96b5f24a567dfcf15bc6a37229aa7}\label{classosgeo_1_1proj_1_1operation_1_1CoordinateOperationFactory_a7ce96b5f24a567dfcf15bc6a37229aa7}} 
\index{osgeo::proj::operation::CoordinateOperationFactory@{osgeo::proj::operation::CoordinateOperationFactory}!createOperations@{createOperations}}
\index{createOperations@{createOperations}!osgeo::proj::operation::CoordinateOperationFactory@{osgeo::proj::operation::CoordinateOperationFactory}}
\doxysubsubsection{\texorpdfstring{createOperations()}{createOperations()}}
{\footnotesize\ttfamily std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a1b1238e3c3bfa1271bfecce940e77f13}{Coordinate\+Operation\+NNPtr}} $>$ osgeo\+::proj\+::operation\+::\+Coordinate\+Operation\+Factory\+::create\+Operations (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs\+::\+CRSNNPtr}} \&}]{source\+CRS,  }\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a8cabf171d097255fb43d0ceb916c815c}{crs\+::\+CRSNNPtr}} \&}]{target\+CRS,  }\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a515bdd2c877b52861c1b1e423f5dd908}{Coordinate\+Operation\+Context\+NNPtr}} \&}]{context }\end{DoxyParamCaption}) const}



Find a list of \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{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 source\+CRS} & source CRS. \\
\hline
{\em target\+CRS} & target CRS. \\
\hline
{\em context} & Search context. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a list 
\end{DoxyReturn}


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