HorizontalVerticalTransformation Class

  • HorizontalVerticalTransformation
  • class Esri::ArcGISRuntime::HorizontalVerticalTransformation

    Used to transform coordinates of z-aware geometries between spatial references that have different geographic and/or vertical coordinate systems. More...

    Header: #include <HorizontalVerticalTransformation.h>
    Since: Esri::ArcGISRuntime 100.9
    Inherits: Esri::ArcGISRuntime::DatumTransformation

    Public Functions

    HorizontalVerticalTransformation(const QList<Esri::ArcGISRuntime::HorizontalVerticalTransformationStep> &steps, QObject *parent = nullptr)
    HorizontalVerticalTransformation(const Esri::ArcGISRuntime::HorizontalVerticalTransformationStep &step, QObject *parent = nullptr)
    virtual ~HorizontalVerticalTransformation() override
    QList<Esri::ArcGISRuntime::HorizontalVerticalTransformationStep> steps() const

    Detailed Description

    A HorizontalVerticalTransformation is an ordered list of HorizontalVerticalTransformationStep objects. Each HorizontalVerticalTransformation has an input and an output SpatialReference, and this HorizontalVerticalTransformation object can be used to convert coordinates between the horizontal (geographic) and vertical datums of these spatial references using the series of steps it contains. Use the GeometryEngine::project(const Esri::ArcGISRuntime::Geometry&, const Esri::ArcGISRuntime::SpatialReference&, Esri::ArcGISRuntime::DatumTransformation*) method to transform the coordinates of a specific Geometry.

    A horizontal transformation step is not needed when the input and output spatial references have the same underlying geographic coordinate systems. A vertical transformation is not needed if both datums (for ellipsoidal heights) or vertical datums (for gravity-related heights) are the same. To transform coordinates only between different horizontal (geographic) coordinate systems, you can use a GeographicTransformation instead.

    The inverse of this transformation, used to transform in the opposite direction, is returned from the DatumTransformation::inverse method.

    A HorizontalVerticalTransformation can be constructed from a single HorizontalVerticalTransformationStep object, or from a number of transformation step objects that are chained together.

    You can get a list of suitable transformations for a given input and output spatial reference using one of the methods on the TransformationCatalog class.

    Some transformations require that certain Projection Engine data files be present on the local file system, and vertical transformation steps are especially likely to use such files, which can be very large in size. The DatumTransformation::isMissingProjectionEngineFiles property indicates whether any of the files are missing. The complete list of necessary files for each specific step is available using the HorizontalVerticalTransformationStep::projectionEngineFilenames property.

    A HorizontalVerticalTransformation object is immutable.

    See also GeographicTransformation.

    Member Function Documentation

    [explicit] HorizontalVerticalTransformation::HorizontalVerticalTransformation(const QList<Esri::ArcGISRuntime::HorizontalVerticalTransformationStep> &steps, QObject *parent = nullptr)

    Create a multi-step transformation from one or more HorizontalVerticalTransformationStep instances.

    Use this constructor to create a horizontal-vertical transformation that has multiple steps. The output SpatialReference of each step should match the input SpatialReference of the following step.

    [explicit] HorizontalVerticalTransformation::HorizontalVerticalTransformation(const Esri::ArcGISRuntime::HorizontalVerticalTransformationStep &step, QObject *parent = nullptr)

    Create a single step transformation.

    [override virtual] HorizontalVerticalTransformation::~HorizontalVerticalTransformation()

    Destructor.

    QList<Esri::ArcGISRuntime::HorizontalVerticalTransformationStep> HorizontalVerticalTransformation::steps() const

    Returns the list of transformation steps that define this transformation.

    Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.