private void Clipbyprovince()
{
Geoprocessor gp1 = new Geoprocessor();
gp1.OverwriteOutput = true;
ESRI.ArcGIS.AnalysisTools.Clip Clip = new ESRI.ArcGIS.AnalysisTools.Clip();
IWorkspaceFactory Aiwsf = new ShapefileWorkspaceFactoryClass();
IFeatureWorkspace inFWS = Aiwsf.OpenFromFile(Environment.CurrentDirectory + "/shp/", 0) as IFeatureWorkspace;
IFeatureClass inFeatureClass = inFWS.OpenFeatureClass("SO2");
IFeatureWorkspace clipFWS = Aiwsf.OpenFromFile(Environment.CurrentDirectory + "/province/", 0) as IFeatureWorkspace;
IFeatureClass clipFeatureClass = clipFWS.OpenFeatureClass("hb");
if (File.Exists(Environment.CurrentDirectory + "/cut/SO2.shp"))
{
IFeatureWorkspace outFWS = Aiwsf.OpenFromFile(Environment.CurrentDirectory + "/cut/", 0) as IFeatureWorkspace;
IFeatureClass pFeatureClass = outFWS.OpenFeatureClass("SO2");
IDataset pDataset = pFeatureClass as IDataset;
pDataset.Delete();
}
Clip.in_features = inFeatureClass;
Clip.clip_features = clipFeatureClass; //必须与inFeatureClass类型一直 否则报错 对COM组件的调用返回了错误HRESULT E_FAIL
Clip.out_feature_class = Environment.CurrentDirectory + "/cut/SO2.shp";
try
{
IGeoProcessorResult result = (IGeoProcessorResult)gp1.Execute(Clip, null);
}
catch (Exception ex)
{
Class_Log.WriteLog("切割" + ex.Message);
}
finally
{
//MapHelper.ReleaseObject(gp1);
//MapHelper.ReleaseObject(Clip);
}
}
{
Geoprocessor gp1 = new Geoprocessor();
gp1.OverwriteOutput = true;
ESRI.ArcGIS.AnalysisTools.Clip Clip = new ESRI.ArcGIS.AnalysisTools.Clip();
IWorkspaceFactory Aiwsf = new ShapefileWorkspaceFactoryClass();
IFeatureWorkspace inFWS = Aiwsf.OpenFromFile(Environment.CurrentDirectory + "/shp/", 0) as IFeatureWorkspace;
IFeatureClass inFeatureClass = inFWS.OpenFeatureClass("SO2");
IFeatureWorkspace clipFWS = Aiwsf.OpenFromFile(Environment.CurrentDirectory + "/province/", 0) as IFeatureWorkspace;
IFeatureClass clipFeatureClass = clipFWS.OpenFeatureClass("hb");
if (File.Exists(Environment.CurrentDirectory + "/cut/SO2.shp"))
{
IFeatureWorkspace outFWS = Aiwsf.OpenFromFile(Environment.CurrentDirectory + "/cut/", 0) as IFeatureWorkspace;
IFeatureClass pFeatureClass = outFWS.OpenFeatureClass("SO2");
IDataset pDataset = pFeatureClass as IDataset;
pDataset.Delete();
}
Clip.in_features = inFeatureClass;
Clip.clip_features = clipFeatureClass; //必须与inFeatureClass类型一直 否则报错 对COM组件的调用返回了错误HRESULT E_FAIL
Clip.out_feature_class = Environment.CurrentDirectory + "/cut/SO2.shp";
try
{
IGeoProcessorResult result = (IGeoProcessorResult)gp1.Execute(Clip, null);
}
catch (Exception ex)
{
Class_Log.WriteLog("切割" + ex.Message);
}
finally
{
//MapHelper.ReleaseObject(gp1);
//MapHelper.ReleaseObject(Clip);
}
}