日期:2014-05-18  浏览次数:21273 次

调用自定义GP工具问题
我的GP工具不用输入参数,是那种直接调用跑一下就行的,但是出现“对 COM 组件的调用返回了错误 HRESULT E_FAIL”。
代码贴下:
 Geoprocessor gp = new Geoprocessor();
  gp.OverwriteOutput = true;
  gp.AddToolbox(toolPath);
  IVariantArray parameters = new VarArrayClass();
  gp.Execute("Gen_Join_Tnb", parameters, null);
  for (int i = 0; i < gp.MessageCount; i++)
  {
  string Mess = gp.GetMessage(i);
  }
工具执行消息数量是0,就是没有执行。
请各位高手指点!

------解决方案--------------------
ArcGIS Engine中调用GP模型示例代码,如下:

//1-定义GeoProcessor对象
Geoprocessor gp = new Geoprocessor();
object sev = null;
//2-设置参数
gp.OverwriteOutput = true;
//3-设置工具箱所在的路径
gp.AddToolbox(@"F:\lib_test\AirportsAndGolf.tbx");
//4-设置输入参数
IVariantArray parameters = new VarArrayClass();
parameters.Add(@"F:\lib_test\地下水重金属数据.xls\Sheet1$");
parameters.Add("`YEAR` = 2009");
parameters.Add("W20111");
parameters.Add(@"F:\lib_test\temp.gdb\tempwww");

//5-执行工具
gp.Execute("ModelAnalysis", parameters, null);