![]()  | 
                    
                         This document is archived and information here might be outdated. Recommended version.  | 
                
| ArcObjects namespaces > Geometry > ESRI.ArcGIS.Geometry > Interfaces > IS > ISpatialReferenceFactory Interface > ISpatialReferenceFactory.CreateProjectedCoordinateSystem Method (ArcObjects .NET 10.4 SDK) | 
Creates a predefined projected coordinate system.
[Visual Basic .NET] Public Function CreateProjectedCoordinateSystem ( _ ByVal pcsType As Integer _ ) As IProjectedCoordinateSystem
[C#] public IProjectedCoordinateSystem CreateProjectedCoordinateSystem ( int pcsType );
[C++]
HRESULT CreateProjectedCoordinateSystem(
  long pcsType,
  IProjectedCoordinateSystem** pcs
);
[C++]
Parameters pcsType pcsType is a parameter of type long pcs [out, retval]
pcs is a parameter of type IProjectedCoordinateSystem
Use an element from the esriSRProjCSType, esriSRProjCS2Type, esriSRProjCS3Type, or esriSRProjCS4Type enumerations as the pcsType to create a particular predefined projected coordinate system.
        private void CreateProjectedCoordinateSystem()
        {
            ISpatialReferenceFactory spatialReferenceFactory=new SpatialReferenceEnvironmentClass();
            //Create a projected coordinate system using the available projected coordinate systems
            IProjectedCoordinateSystem projectedCoordinateSystem1=spatialReferenceFactory.CreateProjectedCoordinateSystem((int)esriSRProjCSType.esriSRProjCS_World_Mercator);
            //Here is an more detailed example for creating a pre-defined projected coordinate
            //system for a new Shapefile using the 'ISpatialReferenceFactory::CreateProjectedCoordinateSystem method
            //Create the pre-defined projected coordinate system object
            IProjectedCoordinateSystem projectedCoordinateSystem2=spatialReferenceFactory.CreateProjectedCoordinateSystem((int)esriSRProjCSType.esriSRProjCS_NAD1983SPCS_TXSouthCentFT);
            ISpatialReference spatialReference=projectedCoordinateSystem2 as ISpatialReference;
            //Set the false origin and units for the spatial reference.
            //You can use either the Domain or the FalseOriginAndUnits methods.
            // spatialReference.SetFalseOriginAndUnits(0, 0, 0);
            spatialReference.SetDomain(-1000000, 10000000, -1000000, 10000000);
            // spatialReference.SetMDomain(0, 1);
            spatialReference.SetMFalseOriginAndUnits(1, 1);
            // spatialReference.SetZDomain(0, 1);
            spatialReference.SetZFalseOriginAndUnits(1, 1);
            // Create a new SDE workspace
            IWorkspaceFactory sdeWorkspaceFactory=new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();
            IWorkspace workspace=sdeWorkspaceFactory.OpenFromFile("C:\\Documents and Settings\\bast5010\\Application Data\\ESRI\\ArcCatalog\\Connection to Vampire.sde", 0);
            IFeatureWorkspace sdeFeatureWorkspace=workspace as IFeatureWorkspace;
            //Create the fields for the feature dataset
            IFields fields=new FieldsClass();
            IFieldsEdit fieldsEdit=fields as IFieldsEdit;
            IField field=new FieldClass();
            IFieldEdit fieldEdit=field as IFieldEdit;
            fieldEdit.Type_2=esriFieldType.esriFieldTypeOID;
            fieldEdit.IsNullable_2=false;
            fieldEdit.Name_2="OID";
            fieldsEdit.AddField(fieldEdit);
            IGeometryDefEdit geometryDefEdit=new GeometryDefClass();
            geometryDefEdit.GeometryType_2=esriGeometryType.esriGeometryPolygon;
            geometryDefEdit.GridCount_2=1;
            geometryDefEdit.set_GridSize(0, 1000);
            geometryDefEdit.SpatialReference_2=spatialReference;
            fieldEdit=new FieldClass();
            fieldEdit.Name_2="Shape";
            fieldEdit.IsNullable_2=true;
            fieldEdit.Type_2=esriFieldType.esriFieldTypeGeometry;
            fieldEdit.GeometryDef_2=geometryDefEdit;
fieldsEdit.AddField(fieldEdit);
fieldEdit=new FieldClass();
            fieldEdit.Name_2="Test_Field";
            fieldEdit.IsNullable_2=true;
            fieldEdit.Editable_2=true;
            fieldEdit.Length_2=25;
            fieldEdit.Type_2=esriFieldType.esriFieldTypeString;
            fieldsEdit.AddField(fieldEdit);
            //Create a UID for the CreateFeatureClass method
            UID uid=new UIDClass();
            uid.Generate();
            //Create ExtCLSID as for CreateFeatureClass method
            UID uidExt=new UIDClass();
            uidExt.Generate();
            //Create the feature class for the feature dataset
            IFeatureClass featureClass=sdeFeatureWorkspace.CreateFeatureClass("PreDef_StateNAD83", fields, null, null, esriFeatureType.esriFTSimple, "Shape", "");
            System.Windows.Forms.MessageBox.Show("Data Creation Complete", "Program Status");
        }
    Private Sub CreateProjectedCoordinateSystem()
        Dim pSpatRefFact As ESRI.ArcGIS.Geometry.ISpatialReferenceFactory
        'Set the spatial reference factory to a new spatial reference environment
        pSpatRefFact=New ESRI.ArcGIS.Geometry.SpatialReferenceEnvironment
        Dim pProjCoordSys As ESRI.ArcGIS.Geometry.IProjectedCoordinateSystem
        'Create a projected coordinate system using the available projected coordinate systems
        pProjCoordSys=pSpatRefFact.CreateProjectedCoordinateSystem(ESRI.ArcGIS.Geometry.esriSRProjCSType.esriSRProjCS_World_Mercator)
        'Here is an more detailed example for creating a pre-defined projected coordinate
        'system for a new Shapefile using the 'ISpatialReferenceFactory::CreateProjectedCoordinateSystem method
        'Create the pre-defined projected coordinate system object
        pProjCoordSys=pSpatRefFact.CreateProjectedCoordinateSystem(ESRI.ArcGIS.Geometry.esriSRProjCSType.esriSRProjCS_NAD1983SPCS_TXSouthCentFT)
        Dim pSpatRef As ESRI.ArcGIS.Geometry.ISpatialReference
        pSpatRef=pProjCoordSys
        'Set the domain extents for the new dataset
        pSpatRef.SetDomain(-10000000, 10000000, -10000000, 10000000)
        'pSpatRef.SetFalseOriginAndUnits 0, 0, 0
        pSpatRef.SetMDomain(1, 1)
        'pSpatRef.SetMFalseOriginAndUnits 1, 1
        pSpatRef.SetZDomain(0, 1)
        'pSpatRef.SetZFalseOriginAndUnits 1, 1
        'Create a new SDE workspace
        Dim pSdeWorkspaceFactory As ESRI.ArcGIS.Geodatabase.IWorkspaceFactory
        pSdeWorkspaceFactory=New ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactory
        Dim pWorkspace As ESRI.ArcGIS.Geodatabase.IWorkspace
        pWorkspace=pSdeWorkspaceFactory.OpenFromFile("C:\\Documents and Settings\\bast5010\\Application Data\\ESRI\\ArcCatalog\\Connection to Vampire.sde", 0)
        Dim pSdeFeatureWorkspace As ESRI.ArcGIS.Geodatabase.IFeatureWorkspace
        pSdeFeatureWorkspace=pWorkspace
        'Creat the fields for new dataset
        Dim pFlds As ESRI.ArcGIS.Geodatabase.IFields
        pFlds=New ESRI.ArcGIS.Geodatabase.Fields
        Dim pFldsEdit As ESRI.ArcGIS.Geodatabase.IFieldsEdit
        pFldsEdit=pFlds
        Dim pFld As ESRI.ArcGIS.Geodatabase.IField
        pFld=New ESRI.ArcGIS.Geodatabase.Field
        Dim pFldEdit As ESRI.ArcGIS.Geodatabase.IFieldEdit
        pFldEdit=pFld
        With pFldEdit
            .Type_2=6
            .IsNullable_2=False
            .Name_2="OID"
        End With
        pFldsEdit.AddField(pFldEdit)
        Dim pGeodef As ESRI.ArcGIS.Geodatabase.IGeometryDefEdit
        pGeodef=New ESRI.ArcGIS.Geodatabase.GeometryDef
        With pGeodef
            .GeometryType_2=ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon
            .GridCount_2=1
            .GridSize_2(0)=1000
            .SpatialReference_2=pSpatRef
        End With
        pFldEdit=New ESRI.ArcGIS.Geodatabase.Field
        With pFldEdit
            .Name_2="Shape"
            .IsNullable_2=True
            .Type_2=ESRI.ArcGIS.Geodatabase.esriFieldType.esriFieldTypeGeometry
            .GeometryDef_2=pGeodef
        End With
        pFldsEdit.AddField(pFldEdit)
        pFldEdit=New ESRI.ArcGIS.Geodatabase.Field
        With pFldEdit
            .Name_2="Test_Field"
            .Editable_2=True
            .Length_2=25
            .Type_2=ESRI.ArcGIS.Geodatabase.esriFieldType.esriFieldTypeString
        End With
        pFldsEdit.AddField(pFldEdit)
        Dim pUID As New ESRI.ArcGIS.esriSystem.UID
        pUID.Generate()
        Dim pEXTCLSID As New ESRI.ArcGIS.esriSystem.UID
        pEXTCLSID.Generate()
        Dim shapeFieldName As String
        shapeFieldName="Shape"
        Dim pOutputFeatureClass As ESRI.ArcGIS.Geodatabase.IFeatureClass
        'Create the feature class
        pOutputFeatureClass=pSdeFeatureWorkspace.CreateFeatureClass("PreDef_StateNAD83", pFlds, Nothing, Nothing, ESRI.ArcGIS.Geodatabase.esriFeatureType.esriFTSimple, "Shape", "")
        MsgBox("Data Creation Complete", vbOKOnly, "Program ")
    End Sub
ISpatialReferenceFactory Interface | esriSRProjCSType Constants | esriSRProjCS2Type Constants | esriSRProjCS3Type Constants | esriSRProjCS4Type Constants