/// <summary>
/// Erase
/// </summary>
/// <param name="path1">shp路径1</param>
/// <param name="path2">shp路径2</param>
/// <param name="name">输出路径</param>
/// <param name="name">输出名称</param>
/// <returns></returns>
string eraseShp(string path1, string path2, string outpath,string name = "ceshi")
{
string path =outpath;
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
var output = path + "\\" + name + ".shp";
Geoprocessor pGeop = new Geoprocessor();
pGeop.OverwriteOutput = true;
ESRI.ArcGIS.AnalysisTools.Erase pErase = new ESRI.ArcGIS.AnalysisTools.Erase();
pErase.in_features = path1;
pErase.erase_features = path2;
pErase.out_feature_class = output;
IGeoProcessorResult gpResult = null;
try
{
gpResult = (IGeoProcessorResult)pGeop.Execute(pErase, null);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return output;
}
调用返回 外部组件错误,是权限问题
在调用此方法的form_load事件中 声明权限
IAoInitialize m_AoInitialize = new AoInitializeClass();
esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
private void Form_Load(object sender, EventArgs e)
{
licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
}