ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Geometry Namespace / ProjectionTransformation Class / Create Method
The spatial reference to project from. Cannot be unknown coordinate system.
The spatial reference to project to. Cannot be unknown coordinate system.
(Optional) The extent of the data that is being projected. Default is null. A null value or an empty envelope means the extent is the entire world.
Example Version

Create Method (ProjectionTransformation)
Creates a projection transformation from two spatial references and an extent of interest. Automatically selects a geographic transformation for the projection.
Syntax

Parameters

inputSR
The spatial reference to project from. Cannot be unknown coordinate system.
outputSR
The spatial reference to project to. Cannot be unknown coordinate system.
extentOfInterest
(Optional) The extent of the data that is being projected. Default is null. A null value or an empty envelope means the extent is the entire world.

Return Value

Example
Create Projection Transformation
// methods need to be on the MCT
ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
{
  SpatialReference sr4267 = SpatialReferenceBuilder.CreateSpatialReference(4267);
  SpatialReference sr4326 = SpatialReferences.WGS84;
  SpatialReference sr3857 = SpatialReferences.WebMercator;

  // Create transformation from  4267 -> 3857
  ProjectionTransformation projTransFromSRs = 
       ArcGIS.Core.Geometry.ProjectionTransformation.Create(sr4267, sr3857);

  // create an envelope
  Envelope env = EnvelopeBuilderEx.CreateEnvelope(
             new Coordinate2D(2, 2), new Coordinate2D(3, 3), sr4267);

  // Project with one geo transform 4267 -> 3857
  Envelope projectedEnvEx = GeometryEngine.Instance.ProjectEx(
                                 env, projTransFromSRs) as Envelope;

  // Create inverse transformation, 3857 -> 4267
  ProjectionTransformation projTransFromSRsInverse = 
      ArcGIS.Core.Geometry.ProjectionTransformation.Create(sr3857, sr4267);
  // Project the projected envelope back using the inverse transformation
  Envelope projectedEnvBack = 
         GeometryEngine.Instance.ProjectEx(
           projectedEnvEx, projTransFromSRsInverse) as Envelope;

  bool isEqual = env.IsEqual(projectedEnvBack);
});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also