public IFeatureLayer DoClip(IFeatureClass pInputFeatureClass, IFeatureClass pClipFeatureClass,double dis, string outputFile)
{
IFeatureClassName pOutput = new FeatureClassNameClass();
pOutput.ShapeFieldName = pInputFeatureClass.ShapeFieldName;
pOutput.ShapeType = pInputFeatureClass.ShapeType;
pOutput.FeatureType = esriFeatureType.esriFTSimple;
//获取shapefile数据工作空间
IWorkspaceName pWsN = new WorkspaceNameClass();
pWsN.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory";
pWsN.PathName = Path.GetDirectoryName(outputFile);
//通过IDatasetName设置输出结果相关参数
IDatasetName pDatasetName = pOutput as IDatasetName;
pDatasetName.Name = Path.GetFileNameWithoutExtension(outputFile);
pDatasetName.WorkspaceName = pWsN;
//初始化IBasicGeoprocessor对象,调用clip方法
IBasicGeoprocessor pBasicGeo = new BasicGeoprocessorClass();
pBasicGeo.SpatialReference = (pInputFeatureClass as IGeoDataset).SpatialReference;
//进行裁剪运算
IFeatureClass pFeatureClass = pBasicGeo.Clip(pInputFeatureClass as ITable, true, pClipFeatureClass as ITable, true, 0.01, pOutput);
IFeatureLayer featureLayer = new FeatureLayerClass()
{
Name = Path.GetFileNameWithoutExtension(outputFile),
FeatureClass = pFeatureClass
};
return featureLayer;
}