调用GP工具生成缓冲区是通过调用ESRI.ArcGIS.AnalysisTools.Buffer方法定义缓冲区。通过GP工具执行分析与生成。
0.引用ESRI.ArcGIS.Carto、ESRI.ArcGIS.Geoprocessor和ESRI.ArcGIS.AnalysisTools
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geoprocessor;
using ESRI.ArcGIS.AnalysisTools;
1.调用ESRI.ArcGIS.AnalystTools.Buffer生成缓冲区
ESRI.ArcGIS.AnalysisTools.Buffer pBuffer = new ESRI.ArcGIS.AnalysisTools.Buffer();
//获取缓冲区分析图层
ILayer pLayer = axMapControl1.get_Layer(1); //第一图层为点图层。
//将pLayer转化为featureLayer,可以转化是因为一个图层上的要素属于同一类型
IFeatureLayer featureLayre = pLayer as IFeatureLayer;
//指定buffer要素类
pBuffer.in_features = featureLayre;
//指定存储位置
string filepath = @"D:\";
pBuffer.out_feature_class = filepath + "\\" + pLayer.Name + ".shp";
//设置缓冲区距离
pBuffer.buffer_distance_or_field = "50 Meters"; //距离加单位
//筛选创建缓冲区的点
pBuffer.dissolve_option = "ALL"; //选择全部的点
2.调用GP工具执行缓冲区分析与生成
//缓冲区分析,GP工具调用
Geoprocessor gp = new Geoprocessor();
//执行缓冲区分析,执行对象为Buffer对象
gp.Execute(pBuffer, null);
3.将生成的缓冲区SHP文件添加到显示
//将生成的结果添加到地图中
axMapControl1.AddShapeFile(filepath,pLayer.Name); //指定路径和名称加载shp文件
axMapControl1.MoveLayerTo(1, 0); //将图层转到缓冲区结果图层