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
Product Availability
Description
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
See Also
ISpatialReferenceFactory Interface | esriSRProjCSType Constants | esriSRProjCS2Type Constants | esriSRProjCS3Type Constants | esriSRProjCS4Type Constants