21 #ifndef otbGenericMapProjection_hxx 22 #define otbGenericMapProjection_hxx 30 template <TransformDirection::TransformationDirection TDirectionOfMapping,
class TScalarType,
unsigned int NInputDimensions,
unsigned int NOutputDimensions>
32 :
Superclass(ParametersDimension), m_MapProjection()
36 template <TransformDirection::TransformationDirection TDirectionOfMapping,
class TScalarType,
unsigned int NInputDimensions,
unsigned int NOutputDimensions>
41 template <TransformDirection::TransformationDirection TDirectionOfMapping,
class TScalarType,
unsigned int NInputDimensions,
unsigned int NOutputDimensions>
59 template <TransformDirection::TransformationDirection TDirectionOfMapping,
class TScalarType,
unsigned int NInputDimensions,
unsigned int NOutputDimensions>
65 #if GDAL_VERSION_NUM >= 3000000 66 wgs84.SetAxisMappingStrategy(OAMS_TRADITIONAL_GIS_ORDER);
67 wktSpatialReference.SetAxisMappingStrategy(OAMS_TRADITIONAL_GIS_ORDER);
72 std::unique_ptr<CoordinateTransformation> newMapProjection(
new CoordinateTransformation(wktSpatialReference, wgs84));
79 std::unique_ptr<CoordinateTransformation> newMapProjection(
new CoordinateTransformation(wgs84, wktSpatialReference));
88 template <TransformDirection::TransformationDirection TDirectionOfMapping,
class TScalarType,
unsigned int NInputDimensions,
unsigned int NOutputDimensions>
99 if (InputPointType::PointDimension == 3)
102 std::tie(lon, lat, h) =
m_MapProjection->Transform(std::make_tuple(point[0], point[1], z));
104 outputPoint[0] = lon;
105 outputPoint[1] = lat;
106 if (OutputPointType::PointDimension == 3)
114 if (InputPointType::PointDimension == 3)
116 std::tie(x, y, z) =
m_MapProjection->Transform(std::make_tuple(point[0], point[1], h));
119 if (OutputPointType::PointDimension == 3)
127 template <TransformDirection::TransformationDirection TDirectionOfMapping,
class TScalarType,
unsigned int NInputDimensions,
unsigned int NOutputDimensions>
133 template <TransformDirection::TransformationDirection TDirectionOfMapping,
class TScalarType,
unsigned int NInputDimensions,
unsigned int NOutputDimensions>
itk::Point< ScalarType, NOutputDimensions > OutputPointType
itk::Point< ScalarType, NInputDimensions > InputPointType
bool IsProjectionDefined() const
virtual std::string GetWkt()
void PrintSelf(std::ostream &os, itk::Indent indent) const override
static SpatialReference FromDescription(const std::string &sr_description)
static const TransformDirection::TransformationDirection DirectionOfMapping
static SpatialReference FromWGS84()
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
This class is a wrapper around OGRSpatialReference.
std::unique_ptr< CoordinateTransformation > m_MapProjection
~GenericMapProjection() override
OutputPointType TransformPoint(const InputPointType &point) const override
virtual void SetWkt(const std::string &projectionRefWkt)