转自:http://blog.3snews.net/html/91/7091-21585.html
IBasicGeoprocessor pBGeop = new BasicGeoprocessorClass();
IFeatureLayer pFlyr1 = new FeatureLayerClass();IFeatureLayer pFlyr2 = new FeatureLayerClass();
pFlyr1 = this.axMapControl1.get_Layer(0) as IFeatureLayer;
pFlyr2 = this.axMapControl1.get_Layer(1) as IFeatureLayer;
IFeatureClass pFClass1 = pFlyr1.FeatureClass;
IFeatureClass pFClass2 = pFlyr2.FeatureClass;
//Processing type is shapefile -->"esriDataSourcesGDB.ShapefileWorkspaceFactory"
IWorkspaceName pWorkspacename = new WorkspaceNameClass();
pWorkspacename.WorkspaceFactoryProgID ="esriDataSourcesGDB.ShapefileWorkspaceFactory";
pWorkspacename.PathName=@"e:\temp";
IFeatureClassName pOutFeatureclassName = new FeatureClassNameClass();
//以下三条语句对Output的设置,是可有可无的,不影响处理的结果
pOutFeatureclassName.ShapeFieldName = "Shape";
pOutFeatureclassName.ShapeType = esriGeometryType.esriGeometryPolygon;
pOutFeatureclassName.FeatureType = esriFeatureType.esriFTSimple;
//设置输出结果名称“OutputShapeFile”
IDatasetName pDatasetName = new FeatureClassNameClass();
pDatasetName = pOutFeatureclassName as IDatasetName;
pDatasetName.Name = "OutputShapeFile";
pDatasetName.WorkspaceName = pWorkspacename;
//执行Clip操作
IFeatureClass pOutFeatureclass;
pBGeop.SpatialReference = axMapControl1.SpatialReference;
pOutFeatureclass = pBGeop.Clip(pFClass1 as ITable, false, pFClass2 as ITable, false,0.01, pOutFeatureclassName);
//将处理的结果添加到当前的图层中
IFeatureLayer pOutFeaturelayer = new FeatureLayerClass();
pOutFeaturelayer.FeatureClass = pOutFeatureclass ;
pOutFeaturelayer.Name = "Result";
this.axMapControl1.AddLayer(pOutFeaturelayer as ILayer);