ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Geometry Namespace / SpatialReferenceBuilder Class / CreateSpatialReference Method / CreateSpatialReference(Int32) Method
The well-known ID that represents the Spatial Reference.
Example

In This Topic
    CreateSpatialReference(Int32) Method
    In This Topic
    Convenience method to create a new instance of the SpatialReference class.
    Syntax
    public static SpatialReference CreateSpatialReference( 
       int wkid
    )
    Public Overloads Shared Function CreateSpatialReference( _
       ByVal wkid As Integer _
    ) As SpatialReference

    Parameters

    wkid
    The well-known ID that represents the Spatial Reference.

    Return Value

    Example
    Construct a SpatialReference - from a well-known ID
    // Use a builder convenience method or use a builder constructor.
    
    // SpatialReferenceBuilder convenience methods don't need to run on the MCT.
    SpatialReference sr3857 = SpatialReferenceBuilder.CreateSpatialReference(3857);
    
    // SpatialReferenceBuilder constructors need to run on the MCT.
    ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
    {
      using (SpatialReferenceBuilder srBuilder = new SpatialReferenceBuilder(3857))
      {
        // do something with the builder
    
        sr3857 = srBuilder.ToSpatialReference();
      }
    });
    
    Determine Transformations
    // methods need to run on the MCT
    ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
    {
      //
      // find the first transformation used between spatial references 4267 and 4326
      //
      SpatialReference sr4267 = 
           SpatialReferenceBuilder.CreateSpatialReference(4267);
      SpatialReference sr4326 = SpatialReferences.WGS84;
    
      List<ProjectionTransformation> transformations = 
             ProjectionTransformation.FindTransformations(sr4267, sr4326);
      // transformations.Count = 1
      ProjectionTransformation projTrans = transformations[0];
      CompositeGeographicTransformation compositeGT = 
           projTrans.Transformation as CompositeGeographicTransformation;
      GeographicTransformation gt = compositeGT[0];
      // gt.Wkid = 15851
      // gt.Name = "NAD_1927_To_WGS_1984_79_CONUS"
      // gt.IsForward = true
    
    
      //
      // find the first five transformation used between spatial references 4267 and 4326
      //
      transformations = ProjectionTransformation.FindTransformations(
                                         sr4267, sr4326, numResults: 5);
      // transformations.Count = 5
      projTrans = transformations[0];
      compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
      // compositeGT.Count = 1
      // compositeGT[0].Wkid = 15851
      // compositeGT[0].Name = "NAD_1927_To_WGS_1984_79_CONUS"
      // compositeGT[0].IsForward = true
    
      projTrans = transformations[1];
      compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
      // compositeGT.Count = 1
      // compositeGT[0].Wkid = 1173
      // compositeGT[0].Name = "NAD_1927_To_WGS_1984_4"
      // compositeGT[0].IsForward = true
    
      projTrans = transformations[2];
      compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
      // compositeGT.Count = 1
      // compositeGT[0].Wkid = 1172
      // compositeGT[0].Name = "NAD_1927_To_WGS_1984_3"
      // compositeGT[0].IsForward = true
    
      projTrans = transformations[3];
      compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
      // compositeGT.Count = 2
      // compositeGT[0].Wkid = 1241
      // compositeGT[0].Name = "NAD_1927_To_NAD_1983_NADCON"
      // compositeGT[0].IsForward = true
    
      // compositeGT[1].Wkid = 108190
      // compositeGT[1].Name = "WGS_1984_(ITRF00)_To_NAD_1983"
      // compositeGT[1].IsForward = false
    
      projTrans = transformations[4];
      compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
      // compositeGT.Count = 2
      // compositeGT[0].Wkid = 1241
      // compositeGT[0].Name = "NAD_1927_To_NAD_1983_NADCON"
      // compositeGT[0].IsForward = true
    
      // compositeGT[1].Wkid = 1515
      // compositeGT[1].Name = "NAD_1983_To_WGS_1984_5"
      // compositeGT[1].IsForward = true
    
    
      //
      // find the first transformation used between spatial
      // references 4267 and 4326 within Alaska
      //
    
      // Alaska
      Envelope envelope = EnvelopeBuilderEx.CreateEnvelope(-161, 61, -145, 69);
      transformations = ProjectionTransformation.FindTransformations(
                                                  sr4267, sr4326, envelope);
      // transformations.Count = 1
      projTrans = transformations[0];
      compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
      // compositeGT.Count = 2
      // compositeGT[0].Wkid = 1243
      // compositeGT[0].Name = "NAD_1927_To_NAD_1983_Alaska"
      // compositeGT[0].IsForward = true
    
      // compositeGT[1].Wkid = 108190
      // compositeGT[1].Name = "WGS_1984_(ITRF00)_To_NAD_1983"
      // compositeGT[1].IsForward = false
    
    
      //
      // find the first geographic transformation used between two spatial references with VCS  (use vertical = false)
      //
      SpatialReference inSR = 
                      SpatialReferenceBuilder.CreateSpatialReference(4269, 115702);
      SpatialReference outSR = 
                      SpatialReferenceBuilder.CreateSpatialReference(4326, 3855);
    
      // Even though each spatial reference has a VCS,
      // vertical = false should return geographic transformations.
      transformations = ProjectionTransformation.FindTransformations(inSR, outSR);
      // transformations.Count = 1
      projTrans = transformations[0];
      compositeGT = projTrans.Transformation as CompositeGeographicTransformation;
      // compositeGT.Count = 1
      // compositeGT[0].Wkid = 108190
      // compositeGT[0].Name = ""WGS_1984_(ITRF00)_To_NAD_1983"
      // compositeGT[0].IsForward = false
    
      //
      // find the first vertical transformation used between two spatial references with VCS  (use vertical = true)
      //
    
      transformations = 
                ProjectionTransformation.FindTransformations(
                                        inSR, outSR, vertical: true);
      // transformations.Count = 1
      projTrans = transformations[0];
    
      CompositeHVDatumTransformation compositeHV = 
              projTrans.Transformation as CompositeHVDatumTransformation;
      // compositeHV.Count = 2
      // compositeHV[0].Wkid = 1188
      // compositeHV[0].Name = "NAD_1983_To_WGS_1984_1"
      // compositeHV[0].IsForward = true
    
      // compositeHV[1].Wkid = 110019
      // compositeHV[1].Name = "WGS_1984_To_WGS_1984_EGM2008_2.5x2.5_Height"
      // compositeHV[1].IsForward = true
    });
    Project from WGS84
    // create the polygon
    List<MapPoint> pts = new List<MapPoint>();
    pts.Add(MapPointBuilderEx.CreateMapPoint(1.0, 1.0, SpatialReferences.WGS84));
    pts.Add(MapPointBuilderEx.CreateMapPoint(1.0, 2.0, SpatialReferences.WGS84));
    pts.Add(MapPointBuilderEx.CreateMapPoint(2.0, 2.0, SpatialReferences.WGS84));
    pts.Add(MapPointBuilderEx.CreateMapPoint(2.0, 1.0, SpatialReferences.WGS84));
    
    Polygon polygon = PolygonBuilderEx.CreatePolygon(pts);
    // ensure it is simple
    bool isSimple = GeometryEngine.Instance.IsSimpleAsFeature(polygon);
    
    // create the spatial reference to project to
    SpatialReference northPole = SpatialReferenceBuilder.CreateSpatialReference(102018);   // north pole stereographic 
    
    // project
    Geometry geometry = GeometryEngine.Instance.Project(polygon, northPole);
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also