天天天晴 2014-07-31 03:23 采纳率: 0%
浏览 2981

C#调用ArcEngine的Geoprocessor工具消除图斑

ArcEngine调用Geoprocessor工具SelectLayerByAttribute选择面积小于500的图斑,可以正常运行

Geoprocessor GP = new Geoprocessor();
g.OverwriteOutput = true;

SelectLayerByAttribute SelectByAttribute = new SelectLayerByAttribute();
ILayer featureLayer = axMapControl1.get_Layer(0);
SelectByAttribute.in_layer_or_view = featureLayer;
SelectByAttribute.selection_type = "NEW_SELECTION";
SelectByAttribute.where_clause = "AREA <500";
g.Execute(SelectByAttribute,null);

选择图斑之后,调用Eliminate消除图斑

String output = @"C:\Users\zc\Documents\ArcGIS\Default.gdb\soils_Eliminate4";

Eliminate eliminate = new Eliminate();
eliminate.in_features = featureLayer;
eliminate.out_feature_class = output;

g.Execute(eliminate, null);

出现错误,错误提示
Message "对 COM 组件的调用返回了错误 HRESULT E_FAIL。"

StackTrace " 在 ESRI.ArcGIS.Geoprocessing.GeoProcessorClass.Execute(String Name, IVariantArray ipValues, ITrackCancel pTrackCancel)
在 ESRI.ArcGIS.Geoprocessor.Geoprocessor.ExecuteInner(IGPProcess process, ITrackCancel trackCancel, IGeoProcessor igp, IVariantArray iva)
在 ESRI.ArcGIS.Geoprocessor.Geoprocessor.Execute(IGPProcess process, ITrackCancel trackCancel)
在 stretch.Form1.button2_Click(Object sender, EventArgs e) 位置 D:\stretch\stretch\Form1.cs:行号 94"
网上关于这方面的资料很少,应该是eliminate的参数有错误,arcengine帮助文档给的参数类型是“object”,不清楚到底是什么类型的参数,有做过这方面的前辈指点一下吗?

  • 写回答

2条回答 默认 最新

  • bagyifkchen 2016-03-10 09:36
    关注

    大神 这个问题解决了吗 我调用平滑面的GP工具报 "对 COM 组件的调用返回了错误 HRESULT E_FAIL 这个错误,调用裁切GP工具都没有问题,调用方法是一样的,这是为什么呢

    评论

报告相同问题?

悬赏问题

  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊