Arc Engine调用GP工具生成缓冲区

调用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);  //将图层转到缓冲区结果图层

猜你喜欢

转载自blog.csdn.net/ScapeD/article/details/82803563
arc