ArcGISTransformationCatalog

Namespace: Esri::GameEngine::Geometry
Class: Esri/GameEngine/Geometry/ArcGISTransformationCatalog
Since: 1.0.0

Summary

Allows discovery and management of the transformations used to convert coordinates between different datums.

Properties

PropertyTypeNullableReadonlySummary
Yes
No

The directory of the Projection Engine files on the local file system.

ProjectionEngineDirectory

static FString GetProjectionEngineDirectory()

static void SetProjectionEngineDirectory(const FString& projectionEngineDirectory)

The directory of the Projection Engine files on the local file system.

This method should only be called immediately upon process startup before any other API method calls.

Projection Engine data files are available in the downloads area of developers.arcgis.com (requires login).

Methods

SignatureReturn TypeSummary

GetTransformation(const ArcGISSpatialReference&, const ArcGISSpatialReference&)

ArcGISDatumTransformation

Returns the best usable (default) transformation to transform between the input and output spatial references, without taking into account an area of interest.

GetTransformation(const ArcGISSpatialReference&, const ArcGISSpatialReference&, const ArcGISEnvelope&)

ArcGISDatumTransformation

Returns the best usable transformation to transform between the input and output spatial references, taking into account the area of interest, if specified.

GetTransformation(const ArcGISSpatialReference&, const ArcGISSpatialReference&, const ArcGISEnvelope&, bool)

ArcGISDatumTransformation

Returns the best usable transformation used to transform between the input and output spatial references, taking into account the area of interest, if specified. Optionally disregards any vertical transformations.

GetTransformationsBySuitability(const ArcGISSpatialReference&, const ArcGISSpatialReference&)

ArcGISImmutableArray<ArcGISDatumTransformation>

Returns a list representing the datum transformations suitable for projecting between spatial references without taking into account an area of interest.

GetTransformationsBySuitability(const ArcGISSpatialReference&, const ArcGISSpatialReference&, const ArcGISEnvelope&)

ArcGISImmutableArray<ArcGISDatumTransformation>

Returns a list representing the datum transformations suitable for projecting between spatial references and takes into account the area of interest.

GetTransformationsBySuitability(const ArcGISSpatialReference&, const ArcGISSpatialReference&, const ArcGISEnvelope&, bool)

ArcGISImmutableArray<ArcGISDatumTransformation>

Returns a collection of transformations suitable for projecting between the input and output spatial references, taking into account the area of interest, if specified. Optionally checks for suitable vertical transformations.

GetTransformation

static ArcGISDatumTransformation GetTransformation(const ArcGISSpatialReference& inputSpatialReference, const ArcGISSpatialReference& outputSpatialReference)

Returns the best usable (default) transformation to transform between the input and output spatial references, without taking into account an area of interest.

Since 1.0.0

Arguments
NameTypeConstSummary
inputSpatialReference
Yes

The spatial reference to use as the input.

outputSpatialReference
Yes

The spatial reference to use as the output.

Returns ArcGISDatumTransformation

An ArcGISDatumTransformation instance that represents the best choice given the parameters. Always returns a usable transformation where ArcGISDatumTransformation::IsMissingProjectionEngineFiles is false. Returns null if no usable transformation is available for the given input parameters, or if no transformation is required.

Prior to version 100.9, this method returned an ArcGISGeographicTransformation.

From version 100.9 onwards, if both inputSpatialReference and outputSpatialReference have a vertical coordinate system, this method returns an ArcGISHorizontalVerticalTransformation instance. If either ArcGISSpatialReference does not have a vertical coordinate system, an ArcGISGeographicTransformation is returned. To replicate the former behavior, use the ArcGISTransformationCatalog::GetTransformation method instead with 'ignoreVertical = true'.

GetTransformation

static ArcGISDatumTransformation GetTransformation(const ArcGISSpatialReference& inputSpatialReference, const ArcGISSpatialReference& outputSpatialReference, const ArcGISEnvelope& areaOfInterest)

Returns the best usable transformation to transform between the input and output spatial references, taking into account the area of interest, if specified.

Since 1.0.0

Arguments
NameTypeConstSummary
inputSpatialReference
Yes

The spatial reference to use as the input.

outputSpatialReference
Yes

The spatial reference to use as the output.

areaOfInterest
Yes

The bounding box of coordinates to be transformed, or null to consider the entire world extent.

Returns ArcGISDatumTransformation

An ArcGISDatumTransformation instance that represents the best choice given the parameters. Always returns a usable transformation where ArcGISDatumTransformation::IsMissingProjectionEngineFiles is false. Returns null if no usable transformation is available for the given input parameters, or if no transformation is required.

Prior to version 100.9, this method returned an ArcGISGeographicTransformation.

From version 100.9 onwards, if both inputSpatialReference and outputSpatialReference have a vertical coordinate system, this method returns an ArcGISHorizontalVerticalTransformation instance. If either SpatialReference does not have a vertical coordinate system, an ArcGISGeographicTransformation is returned. To replicate the former behavior, use the ArcGISTransformationCatalog::GetTransformation method instead with 'ignoreVertical = true'.

GetTransformation

static ArcGISDatumTransformation GetTransformation(const ArcGISSpatialReference& inputSpatialReference, const ArcGISSpatialReference& outputSpatialReference, const ArcGISEnvelope& areaOfInterest, bool ignoreVertical)

Returns the best usable transformation used to transform between the input and output spatial references, taking into account the area of interest, if specified. Optionally disregards any vertical transformations.

Since 1.0.0

Arguments
NameTypeConstSummary
inputSpatialReference
Yes

The spatial reference to use as the input.

outputSpatialReference
Yes

The spatial reference to use as the output.

areaOfInterest
Yes

The bounding box of coordinates to be transformed, or null to consider the entire world extent.

ignoreVertical
No

True if ArcGISTransformationCatalog should ignore any vertical coordinate system set on the inputSpatialReference or outputSpatialReference, and only consider horizontal (geographic) transformations; false otherwise.

Returns ArcGISDatumTransformation

An ArcGISDatumTransformation instance that represents the best choice given the parameters. Always returns a usable transformation where ArcGISDatumTransformation::IsMissingProjectionEngineFiles is false. The specific type returned depends on the given value of the ignoreVertical parameter.

Returns null if no transformation is required for the given input parameters, or if no usable transformation is available.

GetTransformationsBySuitability

static ArcGISImmutableArray<ArcGISDatumTransformation> GetTransformationsBySuitability(const ArcGISSpatialReference& inputSpatialReference, const ArcGISSpatialReference& outputSpatialReference)

Returns a list representing the datum transformations suitable for projecting between spatial references without taking into account an area of interest.

Since 1.0.0

Arguments
NameTypeConstSummary
inputSpatialReference
Yes

The spatial reference to use as the input.

outputSpatialReference
Yes

The spatial reference to use as the output.

Returns ArcGISImmutableArray<ArcGISDatumTransformation>

An ArcGISImmutableArray<T> containing ArcGISDatumTransformation objects, each suitable for transforming between the given input and output spatial references.

Prior to version 100.9, this method only considered geographic coordinate systems, and the returned array of DatumTransformation objects were of the subtype ArcGISGeographicTransformation. A geographic transformation is not required when input and output spatial references have the same underlying geographic coordinate system, in which case an empty list was returned.

From version 100.9 onwards, if both inputSpatialReference and outputSpatialReference have a vertical coordinate system, this method returns an ArcGISHorizontalVerticalTransformation instance. If either SpatialReference does not have a vertical coordinate system, an ArcGISGeographicTransformation is returned. A geographic transformation is not needed when input and output spatial references have the same underlying geographic (horizontal) coordinate system. A vertical transformation is not needed if both datums (for ellipsoidal heights) or vertical datums (for gravity-related heights) are the same. If neither type of transformation is needed, an empty collection is returned. To replicate the former behavior, use the ArcGISTransformationCatalog::GetTransformationsBySuitability method instead with 'ignoreVertical = true'.

GetTransformationsBySuitability

static ArcGISImmutableArray<ArcGISDatumTransformation> GetTransformationsBySuitability(const ArcGISSpatialReference& inputSpatialReference, const ArcGISSpatialReference& outputSpatialReference, const ArcGISEnvelope& areaOfInterest)

Returns a list representing the datum transformations suitable for projecting between spatial references and takes into account the area of interest.

Since 1.0.0

Arguments
NameTypeConstSummary
inputSpatialReference
Yes

The spatial reference to use as the input.

outputSpatialReference
Yes

The spatial reference to use as the output.

areaOfInterest
Yes

The bounding box of coordinates to be transformed, or null to consider the entire world extent.

Returns ArcGISImmutableArray<ArcGISDatumTransformation>

An ArcGISImmutableArray<T> containing ArcGISDatumTransformation objects, each suitable for transforming between the given input and output spatial references, taking in to account the given area of interest.

Prior to version 100.9, this method only considered geographic coordinate systems, and the returned array of DatumTransformation objects were of the subtype ArcGISGeographicTransformation. A geographic transformation is not required when input and output spatial references have the same underlying geographic coordinate system, in which case an empty list was returned.

From version 100.9 onwards, if both inputSpatialReference and outputSpatialReference have a vertical coordinate system, this method returns an ArcGISHorizontalVerticalTransformation instance. If either SpatialReference does not have a vertical coordinate system, an ArcGISGeographicTransformation is returned. A geographic transformation is not needed when input and output spatial references have the same underlying geographic (horizontal) coordinate system. A vertical transformation is not needed if both datums (for ellipsoidal heights) or vertical datums (for gravity-related heights) are the same. If neither type of transformation is needed, an empty collection is returned. To replicate the former behavior, use the ArcGISTransformationCatalog::GetTransformationsBySuitability method instead with 'ignoreVertical = true'.

GetTransformationsBySuitability

static ArcGISImmutableArray<ArcGISDatumTransformation> GetTransformationsBySuitability(const ArcGISSpatialReference& inputSpatialReference, const ArcGISSpatialReference& outputSpatialReference, const ArcGISEnvelope& areaOfInterest, bool ignoreVertical)

Returns a collection of transformations suitable for projecting between the input and output spatial references, taking into account the area of interest, if specified. Optionally checks for suitable vertical transformations.

Since 1.0.0

Arguments
NameTypeConstSummary
inputSpatialReference
Yes

The spatial reference to use as the input.

outputSpatialReference
Yes

The spatial reference to use as the output.

areaOfInterest
Yes

The bounding box of coordinates to be transformed, or null to consider the entire world extent.

ignoreVertical
No

True if ArcGISTransformationCatalog should ignore any vertical coordinate systems set on the inputSpatialReference or outputSpatialReference, and only consider horizontal (geographic) transformations; false otherwise.

Returns ArcGISImmutableArray<ArcGISDatumTransformation>

A collection of ArcGISDatumTransformation objects suitable for the given parameters, ordered by suitability, or an empty collection if no transformation is required.

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