\hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation}{}\doxysection{osgeo\+::proj\+::operation\+::Single\+Operation Class Reference}
\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation}\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}


A single (not concatenated) coordinate operation (\mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{Coordinate\+Operation}})  




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



Inheritance diagram for osgeo\+::proj\+::operation\+::Single\+Operation\+:
% FIG 0


Collaboration diagram for osgeo\+::proj\+::operation\+::Single\+Operation\+:
% FIG 1
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a52b51c9ff24cf9c40e296018eb5f6c3e}{General\+Parameter\+Value\+NNPtr}} $>$ \& \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ab25f4c2864f120dbce313a98badc4ee1}{parameter\+Values}} ()
\begin{DoxyCompactList}\small\item\em Return the parameter values. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a131837de25ed01267a434c5e50779c8f}{Operation\+Method\+NNPtr}} \& \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a6bf9a444decc61787b928a88bfd447d4}{method}} ()
\begin{DoxyCompactList}\small\item\em Return the operation method associated to the operation. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a8db90baedb6957479f4d5bdf66077d55}{Parameter\+Value\+Ptr}} \& \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ae7a2f6f42f24c15fcd533a07c48844fd}{parameter\+Value}} (const std\+::string \&param\+Name, int epsg\+\_\+code=0) const noexcept
\begin{DoxyCompactList}\small\item\em Return the parameter value corresponding to a parameter name or EPSG code. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a8db90baedb6957479f4d5bdf66077d55}{Parameter\+Value\+Ptr}} \& \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_adc5b7a3c2f90028ce246f0a265276131}{parameter\+Value}} (int epsg\+\_\+code) const noexcept
\begin{DoxyCompactList}\small\item\em Return the parameter value corresponding to a EPSG code. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{common\+::\+Measure}} \& \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a6033af94fad3ccc788750d1659028c88}{parameter\+Value\+Measure}} (const std\+::string \&param\+Name, int epsg\+\_\+code=0) const noexcept
\begin{DoxyCompactList}\small\item\em Return the parameter value, as a measure, corresponding to a parameter name or EPSG code. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{common\+::\+Measure}} \& \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ad9b1b1e0a2a23eb0bdab25cec2911af8}{parameter\+Value\+Measure}} (int epsg\+\_\+code) const noexcept
\begin{DoxyCompactList}\small\item\em Return the parameter value, as a measure, corresponding to a EPSG code. \end{DoxyCompactList}\item 
std\+::set$<$ \mbox{\hyperlink{structosgeo_1_1proj_1_1operation_1_1GridDescription}{Grid\+Description}} $>$ \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a64e0adfd1f336df75d38d677039dbe21}{grids\+Needed}} (const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&database\+Context, bool consider\+Known\+Grids\+As\+Available) const override
\begin{DoxyCompactList}\small\item\em Return grids needed by an operation. \end{DoxyCompactList}\item 
std\+::list$<$ std\+::string $>$ \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a5a03d68a8eec0b9b126e1b1461168b32}{validate\+Parameters}} () const
\begin{DoxyCompactList}\small\item\em Validate the parameters used by a coordinate operation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a04f5a6420cf78a2ce4f85d71374c3c65}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a04f5a6420cf78a2ce4f85d71374c3c65}} 
\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a7da9ca138b1bf3c761df3355e064d5ca}{Transformation\+NNPtr}} {\bfseries substitute\+PROJAlternative\+Grid\+Names} (\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_a776e066c227b9607a8c8e9e356bb9c40}{io\+::\+Database\+Context\+NNPtr}} database\+Context) const
\begin{DoxyCompactList}\small\item\em Return an equivalent transformation to the current one, but using PROJ alternative grid names. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a166ce79d9e581247ea75d694978870ba}{Single\+Operation\+NNPtr}} \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a276599901ec36fea0f5f296867449027}{create\+PROJBased}} (const \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util\+::\+Property\+Map}} \&properties, const std\+::string \&PROJString, const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a10d8b8fa97907a6780310213ce72d744}{crs\+::\+CRSPtr}} \&\mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation_a92f29774431740ce411b30a616c734ca}{source\+CRS}}, const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a10d8b8fa97907a6780310213ce72d744}{crs\+::\+CRSPtr}} \&\mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation_af8fb51d8b7704cf4d02722bb9e07ff77}{target\+CRS}}, const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa6db70d5727fa78de9e1fdb523659823}{metadata\+::\+Positional\+Accuracy\+NNPtr}} $>$ \&accuracies=std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa6db70d5727fa78de9e1fdb523659823}{metadata\+::\+Positional\+Accuracy\+NNPtr}} $>$())
\begin{DoxyCompactList}\small\item\em Instantiate a PROJ-\/based single operation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
A single (not concatenated) coordinate operation (\mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation}{Coordinate\+Operation}}) 

\begin{DoxyRemark}{Remarks}
Implements \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation}{Single\+Operation}} from \mbox{\hyperlink{general_doc_ISO_19111_2019}{ISO 19111\+:2019}} 
\end{DoxyRemark}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a276599901ec36fea0f5f296867449027}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a276599901ec36fea0f5f296867449027}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!createPROJBased@{createPROJBased}}
\index{createPROJBased@{createPROJBased}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{createPROJBased()}{createPROJBased()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a166ce79d9e581247ea75d694978870ba}{Single\+Operation\+NNPtr}} osgeo\+::proj\+::operation\+::\+Single\+Operation\+::create\+PROJBased (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classosgeo_1_1proj_1_1util_1_1PropertyMap}{util\+::\+Property\+Map}} \&}]{properties,  }\item[{const std\+::string \&}]{PROJString,  }\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a10d8b8fa97907a6780310213ce72d744}{crs\+::\+CRSPtr}} \&}]{source\+CRS,  }\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1crs_a10d8b8fa97907a6780310213ce72d744}{crs\+::\+CRSPtr}} \&}]{target\+CRS,  }\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa6db70d5727fa78de9e1fdb523659823}{metadata\+::\+Positional\+Accuracy\+NNPtr}} $>$ \&}]{accuracies = {\ttfamily std\+:\+:vector$<$\mbox{\hyperlink{namespaceosgeo_1_1proj_1_1metadata_aa6db70d5727fa78de9e1fdb523659823}{metadata\+::\+Positional\+Accuracy\+NNPtr}}$>$()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Instantiate a PROJ-\/based single operation. 

\begin{DoxyNote}{Note}
The operation might internally be a pipeline chaining several operations. The use of the \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1SingleOperation}{Single\+Operation}} modeling here is mostly to be able to get the PROJ string as a parameter.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em properties} & Properties \\
\hline
{\em PROJString} & the PROJ string. \\
\hline
{\em source\+CRS} & source CRS (might be null). \\
\hline
{\em target\+CRS} & target CRS (might be null). \\
\hline
{\em accuracies} & Vector of positional accuracy (might be empty). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the new instance 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a64e0adfd1f336df75d38d677039dbe21}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a64e0adfd1f336df75d38d677039dbe21}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!gridsNeeded@{gridsNeeded}}
\index{gridsNeeded@{gridsNeeded}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{gridsNeeded()}{gridsNeeded()}}
{\footnotesize\ttfamily std\+::set$<$ \mbox{\hyperlink{structosgeo_1_1proj_1_1operation_1_1GridDescription}{Grid\+Description}} $>$ osgeo\+::proj\+::operation\+::\+Single\+Operation\+::grids\+Needed (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1io_ac071e92c14195058e37bcd4c7b75b42f}{io\+::\+Database\+Context\+Ptr}} \&}]{database\+Context,  }\item[{bool}]{consider\+Known\+Grids\+As\+Available }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Return grids needed by an operation. 



Implements \mbox{\hyperlink{classosgeo_1_1proj_1_1operation_1_1CoordinateOperation_a2d3af282dcc6ae1e6203162430212d32}{osgeo\+::proj\+::operation\+::\+Coordinate\+Operation}}.

\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a6bf9a444decc61787b928a88bfd447d4}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a6bf9a444decc61787b928a88bfd447d4}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!method@{method}}
\index{method@{method}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{method()}{method()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a131837de25ed01267a434c5e50779c8f}{Operation\+Method\+NNPtr}} \& osgeo\+::proj\+::operation\+::\+Single\+Operation\+::method (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Return the operation method associated to the operation. 

\begin{DoxyReturn}{Returns}
the operation method. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ae7a2f6f42f24c15fcd533a07c48844fd}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ae7a2f6f42f24c15fcd533a07c48844fd}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!parameterValue@{parameterValue}}
\index{parameterValue@{parameterValue}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{parameterValue()}{parameterValue()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a8db90baedb6957479f4d5bdf66077d55}{Parameter\+Value\+Ptr}} \& osgeo\+::proj\+::operation\+::\+Single\+Operation\+::parameter\+Value (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{param\+Name,  }\item[{int}]{epsg\+\_\+code = {\ttfamily 0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}



Return the parameter value corresponding to a parameter name or EPSG code. 


\begin{DoxyParams}{Parameters}
{\em param\+Name} & the parameter name (or empty, in which case epsg\+\_\+code should be non zero) \\
\hline
{\em epsg\+\_\+code} & the parameter EPSG code (possibly zero) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value, or nullptr if not found. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_adc5b7a3c2f90028ce246f0a265276131}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_adc5b7a3c2f90028ce246f0a265276131}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!parameterValue@{parameterValue}}
\index{parameterValue@{parameterValue}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{parameterValue()}{parameterValue()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a8db90baedb6957479f4d5bdf66077d55}{Parameter\+Value\+Ptr}} \& osgeo\+::proj\+::operation\+::\+Single\+Operation\+::parameter\+Value (\begin{DoxyParamCaption}\item[{int}]{epsg\+\_\+code }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}



Return the parameter value corresponding to a EPSG code. 


\begin{DoxyParams}{Parameters}
{\em epsg\+\_\+code} & the parameter EPSG code \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value, or nullptr if not found. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a6033af94fad3ccc788750d1659028c88}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a6033af94fad3ccc788750d1659028c88}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!parameterValueMeasure@{parameterValueMeasure}}
\index{parameterValueMeasure@{parameterValueMeasure}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{parameterValueMeasure()}{parameterValueMeasure()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{common\+::\+Measure}} \& osgeo\+::proj\+::operation\+::\+Single\+Operation\+::parameter\+Value\+Measure (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{param\+Name,  }\item[{int}]{epsg\+\_\+code = {\ttfamily 0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}



Return the parameter value, as a measure, corresponding to a parameter name or EPSG code. 


\begin{DoxyParams}{Parameters}
{\em param\+Name} & the parameter name (or empty, in which case epsg\+\_\+code should be non zero) \\
\hline
{\em epsg\+\_\+code} & the parameter EPSG code (possibly zero) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the measure, or the empty Measure() object if not found. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ad9b1b1e0a2a23eb0bdab25cec2911af8}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ad9b1b1e0a2a23eb0bdab25cec2911af8}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!parameterValueMeasure@{parameterValueMeasure}}
\index{parameterValueMeasure@{parameterValueMeasure}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{parameterValueMeasure()}{parameterValueMeasure()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classosgeo_1_1proj_1_1common_1_1Measure}{common\+::\+Measure}} \& osgeo\+::proj\+::operation\+::\+Single\+Operation\+::parameter\+Value\+Measure (\begin{DoxyParamCaption}\item[{int}]{epsg\+\_\+code }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}



Return the parameter value, as a measure, corresponding to a EPSG code. 


\begin{DoxyParams}{Parameters}
{\em epsg\+\_\+code} & the parameter EPSG code \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the measure, or the empty Measure() object if not found. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ab25f4c2864f120dbce313a98badc4ee1}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_ab25f4c2864f120dbce313a98badc4ee1}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!parameterValues@{parameterValues}}
\index{parameterValues@{parameterValues}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{parameterValues()}{parameterValues()}}
{\footnotesize\ttfamily const std\+::vector$<$ \mbox{\hyperlink{namespaceosgeo_1_1proj_1_1operation_a52b51c9ff24cf9c40e296018eb5f6c3e}{General\+Parameter\+Value\+NNPtr}} $>$ \& osgeo\+::proj\+::operation\+::\+Single\+Operation\+::parameter\+Values (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Return the parameter values. 

\begin{DoxyReturn}{Returns}
the parameter values. 
\end{DoxyReturn}
\mbox{\Hypertarget{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a5a03d68a8eec0b9b126e1b1461168b32}\label{classosgeo_1_1proj_1_1operation_1_1SingleOperation_a5a03d68a8eec0b9b126e1b1461168b32}} 
\index{osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}!validateParameters@{validateParameters}}
\index{validateParameters@{validateParameters}!osgeo::proj::operation::SingleOperation@{osgeo::proj::operation::SingleOperation}}
\doxysubsubsection{\texorpdfstring{validateParameters()}{validateParameters()}}
{\footnotesize\ttfamily std\+::list$<$ std\+::string $>$ osgeo\+::proj\+::operation\+::\+Single\+Operation\+::validate\+Parameters (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Validate the parameters used by a coordinate operation. 

Return whether the method is known or not, or a list of missing or extra parameters for the operations recognized by this implementation. 

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