c# AE 利用gp工具建立缓冲区:两种方法

__ 最近在做GIS二次开发的作业,疯狂打开文件夹找局部代码。我现在决定发一部分出来,学生党作业都要交,所以发的可以用,(以前被长篇代码忽悠怕了 看到最后说麻烦大家帮我改改、、、、)欢迎大家和我探讨。__


private void btnBuffer_Click(object sender, EventArgs e)
 {
  ILayer pLayer = axMapControl1.get_Layer(0);
  IFeatureLayer featureLayer = pLayer as IFeatureLayer;
  ESRI.ArcGIS.Geoprocessing.IGeoProcessor2 gp = new   ESRI.ArcGIS.Geoprocessing.GeoProcessorClass();
   IVariantArray parameters = new VarArray();
   parameters.Add(@"E:\\new\\data\\" + pLayer.Name + ".shp");
   parameters.Add(@"E:\\new\\data\\" + pLayer.Name + "_buffer.shp");
   parameters.Add("800 Meters");
   try
  {
                gp.Execute("Buffer_analysis", parameters, null);
                //执行此操作之前要确保该路径下无同名文件
                axMapControl1.AddShapeFile(@"E:\\new\\data\\", pLayer.Name + "_buffer.shp");
    }
   catch (Exception ex)
   {
                MessageBox.Show(ex.Message);
   }
}

为啥大段的复制会让我死机,迷惑,拆了几次排版还那么乱。另一个下次再发、
######可能出现的问题
如果出现COM组件不能用,可能是语句顺序有问题,或者是参数设置有问题。
对象没有实例化:可能是图层没有找到,调试的时候用Watch看的话IFeatureLayer应该为空。
期末太忙了,假期再整理

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值