2,143
社区成员
发帖
与我相关
我的任务
分享
private void saveAllFeature(IFeatureLayer featureLayer)
{
IFeatureClass pInputFeatureClass = featureLayer.FeatureClass;
IFeatureClass featureclass = ptable as IFeatureClass;
IDataset pInDataset = featureclass as IDataset;
IDataset pInDataset = pInputFeatureClass as IDataset;
IDatasetName pInDatasetName = pInDataset.FullName as IDatasetName;
IFeatureClassName pInFeatureClassName = pInDatasetName as IFeatureClassName;
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(fileDir, 0);
IDataset pOutDataset = pWorkspace as IDataset;
IWorkspaceName pOutWorkspaceName = pOutDataset.FullName as IWorkspaceName;
IFeatureClassName pOutFeatureClassName = new FeatureClassNameClass();
IDatasetName pOutDatasetName = pOutFeatureClassName as IDatasetName;
pOutDatasetName.Name = fileName;
pOutDatasetName.WorkspaceName = pOutWorkspaceName;
//////////////////////////////////////////////////////////////////////////
IFields pOutFields, pInFields;
IFieldChecker pFieldChecker;
IField pGeoField;
IEnumFieldError pEnumFieldError = null;
pInFields = pInputFeatureClass.Fields;
pFieldChecker = new FieldChecker();
pFieldChecker.Validate(pInFields, out pEnumFieldError, out pOutFields);
String shapeFieldName = pInputFeatureClass.ShapeFieldName;
int shapeFieldIndex = pInputFeatureClass.FindField(shapeFieldName);
IField shapeField = pInputFeatureClass.Fields.get_Field(shapeFieldIndex);
IGeometryDef geometryDef = shapeField.GeometryDef;
IClone geometryDefClone = (IClone)geometryDef;
IClone outGeometryDefClone = geometryDefClone.Clone();
IGeometryDef outGeometryDef = (IGeometryDef)outGeometryDefClone;
IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass();
featureDataConverter.ConvertFeatureClass(pInFeatureClassName, null, null, pOutFeatureClassName,
outGeometryDef, pOutFields, "", 1000, 0);
}