Skip to content
import { isLoaded, load, getTransformation, getTransformations } from "@arcgis/core/geometry/operators/support/geographicTransformationUtils.js";
Since
ArcGIS Maps SDK for JavaScript 4.32

A set of utilities for working with geographic transformations.

Notes

Verify that isLoaded() returns true before using this module. Use load() to load this module's dependencies.

Functions

isLoaded

Function

Indicates if all dependencies of this module have been loaded.

Signature
isLoaded (): boolean
Returns
boolean

Returns true if this module's dependencies have been loaded.

load

Function

Loads this module's dependencies. This method must be called first if isLoaded returns false.

See also
Signature
load (): Promise<void>
Returns
Promise<void>

Resolves when the dependencies have been loaded.

getTransformation

Function

Returns the default equation-based, geographic transformation used to convert a geometry from the input spatial reference to the output spatial reference. The default transformation is used when projecting geometries using the projectOperator where the datum transformation is required but not specified in the operator's geographicTransformation parameter.

Known Limitations

This method returns only equation-based geographic transformations. Geographic transformations are returned with their maximum number of GeographicTransformation.steps. Currently, the number of steps is limited to 2.

Signature
getTransformation (inSpatialReference: SpatialReference, outSpatialReference: SpatialReference, areaOfInterestExtent?: Extent | null): GeographicTransformation | null | undefined
Parameters
ParameterTypeDescriptionRequired
inSpatialReference

The input spatial reference from which to project geometries. This is the spatial reference of the input geometries.

outSpatialReference

The spatial reference to which you are converting the geometries.

areaOfInterestExtent

An extent used to determine the suitability of the returned transformation. The extent's spatial reference should be the same as inSpatialReference.

Returns
GeographicTransformation | null | undefined

Returns the default geographic transformation for the given parameters. If no transformation is required or there are no suitable transformations, then null is returned.

Example
const cs1 = new SpatialReference({
wkid: 4272 //PE_GCS_ED_1950
});
const cs2 = new SpatialReference({
wkid: 4167
});
const extent = new Extent({
xmin: -186.0,
ymin: -42.0,
xmax: -179.0,
ymax: -38.0,
spatialReference: cs1
});
if (!geographicTransformationUtils.isLoaded()) {
await geographicTransformationUtils.load();
}
const geogtrans = projection.getTransformation(cs1, cs2, extent);

getTransformations

Function

Returns a list of all equation-based, geographic transformations suitable to convert geometries from the input spatial reference to the specified output spatial reference. The list is ordered in descending order by suitability, with the most suitable being first in the list.

Known Limitations

This method returns only equation-based geographic transformations. Geographic transformations are returned with their maximum number of GeographicTransformation.steps. Currently, number of steps is limited to 2.

Signature
getTransformations (inSpatialReference: SpatialReference, outSpatialReference: SpatialReference, areaOfInterestExtent?: Extent | null): GeographicTransformation[]
Parameters
ParameterTypeDescriptionRequired
inSpatialReference

The spatial reference that the geometries are currently using.

outSpatialReference

The spatial reference to which you are converting the geometries to.

areaOfInterestExtent

An extent used to help pick the correct transform. The extent's spatial reference should be the same as inSpatialReference.

Returns
GeographicTransformation[]

Returns an array containing the maximum number the suitable geographic transformations that can be used to convert geometries between input and output spatial references. The list will be empty if the provided extent lies out of the area of use for the input spatial reference, or if no transformation is required, or there are no suitable transformations.

Example
const cs1 = new SpatialReference({
wkid: 4272 //PE_GCS_ED_1950
});
const cs2 = new SpatialReference({
wkid: 4167
});
const extent = new Extent({
xmin: -186.0,
ymin: -42.0,
xmax: -179.0,
ymax: -38.0,
spatialReference: cs1
});
if (!geographicTransformationUtils.isLoaded()) {
await geographicTransformationUtils.load();
}
const geogtrans = projection.getTransformations(cs1, cs2, extent);
geogtrans.forEach((geogtran, index) => {
geogtran.steps.forEach((step, index) => {
console.log("step wkid: ", step.wkid);
});
});