ISpatialReferenceFactory2 Interface

Provides access to members that create different kinds of spatial reference components.


ISpatialReferenceFactory2 extends the ISpatialReferenceFactory interface and provides methods for accessing a variety of predefined geographic (datum) transformations and creating any kind of spatial reference (PCS or GCS) from its factory code.


Name Description
Method CreateDatum Creates a predefined datum.
Method CreateESRISpatialReference Creates a spatial reference system and defines it from the specified ESRISpatialReference buffer.
Method CreateESRISpatialReferenceFromPRJ Creates a spatial reference from a PRJ string.
Method CreateESRISpatialReferenceFromPRJFile Creates a spatial reference from a PRJ file.
Method CreateGeographicCoordinateSystem Creates a predefined geographic coordinate system.
Method CreateGeoTransformation Creates a predefined transformation between geographic coordinate systems.
Method CreateParameter Creates a predefined parameter.
Method CreatePredefinedAngularUnits Creates a list of predefined angular units.
Method CreatePredefinedDatums Creates a list of a list of predefined datums.
Method CreatePredefinedGeographicTransformations Creates a list of predefined geographic transformations.
Method CreatePredefinedLinearUnits Creates a list of predefined linear units.
Method CreatePredefinedPrimeMeridians Creates a list of predefined prime meridians.
Method CreatePredefinedProjections Creates a list of predefined projections.
Method CreatePredefinedSpheroids Creates a list of predefined spheroids.
Method CreatePrimeMeridian Creates a predefined prime meridian.
Method CreateProjectedCoordinateSystem Creates a predefined projected coordinate system.
Method CreateProjection Creates a predefined projection.
Method CreateSpatialReference Creates a predefined spatial reference from an srID.
Method CreateSpheroid Creates a predefined spheroid.
Method CreateUnit Creates a predefined unit of measure.
Method ExportESRISpatialReferenceToPRJFile Exports a spatial reference to a PRJ file.
Read-only property GeoTransformationDefaults Returns a list of default geographic transformations.
Method GetPredefinedGeographicTransformations Returns a list of predefined geographic transformations.

ISpatialReferenceFactory2.CreatePredefinedGeographicTransformations Method

Creates a list of predefined geographic transformations.

Public Function CreatePredefinedGeographicTransformations ( _
) As ISet
public ISet CreatePredefinedGeographicTransformations (


Returns a list of all predefined geographic (datum) transformations. The list has two columns: the factory code and the name.

ISpatialReferenceFactory2.CreateSpatialReference Method

Creates a predefined spatial reference from an srID.

Public Function CreateSpatialReference ( _
    ByVal srID As Integer _
) As ISpatialReference
public ISpatialReference CreateSpatialReference (
    int srID


Use a srID from the esriSRProjCSType or esriSRGeoCSType enumerations to create a particular predefined spatial reference.

Errors Returned

E_INVALIDARG is returned if the srID is not a valid geographic or projected coordinate system.


The CreateSpatialReference method creates a valid SpatialReference, either a projected or geographic coordinate system, depending on the supplied FactoryCode (here called an srID). The method returns an ISpatialReference. The example code illustrates how to test for what type of SpatialReference has been created. This method will raise an error (E_INVALIDARG) if the FactoryCode number supplied is not valid.

private void CreateSpatialReference(int spatialReferenceID)


        // use activator class with SpatialReferenceEnvironment singleton

        Type factoryType = Type.GetTypeFromProgID("esriGeometry.SpatialReferenceEnvironment");

        System.Object obj = Activator.CreateInstance(factoryType);

        ISpatialReferenceFactory2 spatialReferenceFactory = obj as ISpatialReferenceFactory2;

        //Some examples of spatialReferenceIDs are: 

        //esriSRProjCS_ColombiaBogota = 21892

        //esriSRGeoCS_Australian = 4003

        ISpatialReference spatialReference = spatialReferenceFactory.CreateSpatialReference(spatialReferenceID);

        if (spatialReference is IProjectedCoordinateSystem)


            System.Windows.Forms.MessageBox.Show("You have a Projected Coordinate System");




            if (spatialReference is IGeographicCoordinateSystem)


                System.Windows.Forms.MessageBox.Show("You have a Geographic Coordinate System");




ISpatialReferenceFactory2.GeoTransformationDefaults Property

Returns a list of default geographic transformations.

Public ReadOnly Property GeoTransformationDefaults As IGeoTransformationOperationSet
public IGeoTransformationOperationSet GeoTransformationDefaults {get;}

ISpatialReferenceFactory2.GetPredefinedGeographicTransformations Method

Returns a list of predefined geographic transformations.

Public Function GetPredefinedGeographicTransformations ( _
) As ISet
public ISet GetPredefinedGeographicTransformations (

Inherited Interfaces

Interfaces Description
ISpatialReferenceFactory Provides access to members that create different kinds of spatial reference components.

Classes that implement ISpatialReferenceFactory2

Classes Description
SpatialReferenceEnvironment Creates various spatial reference objects.


The CreatePredefinedGeographicTransformations and the GetPredefinedGeographicTransformations methods both return an ISet of all the possible geotransformations that ArcObjects can create. The SpatialReferenceEnvironment maintains ownership of the set returned by GetPredefinedGeographicTransformations. Neither this set nor its elements should be modified. The Set and transformation elements returned by CreatePredefinedGeographicTransformations can be modified.

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