GP调用ArcToolBox工具与自定义的Model

GP调用ArcToolBox工具与自定义的Model

GP调用ArcToolBox工具

引用命名空间

using ESRI.ArcGIS.Geoprocessing;
using ESRI.ArcGIS.Geoprocessor;
using ESRI.ArcGIS.AnalysisTools; //所要调用的工具命名空间
工具名称 命名空间
3D Analyst tools ESRI.ArcGIS.Analyst3DTools
Analysis tools ESRI.ArcGIS.AnalysisTools
Conversion tools ESRI.ArcGIS.ConversionTools
Data Management tools ESRI.ArcGIS.DataManagementTools
Cartography tools ESRI.ArcGIS.CartographyTools
Coverage tools ESRI.ArcGIS.CoverageTools
Geocoding tools ESRI.ArcGIS.GeocodingTools
Geostatistical Analyst tools ESRI.ArcGIS.GeostatisticalAnalystTools
Linear Referencing tools ESRI.ArcGIS.LinearReferencingAnalystTools
Multidimension tools ESRI.ArcGIS.MultidimensionTools
Network Analyst tools ESRI.ArcGIS.NetworkAnalystTools
Samples ESRI.ArcGIS.SamplesTools
Spatial Analyst tools ESRI.ArcGIS.SpatialAnalystTools
Spatial Statistics tools ESRI.ArcGIS.SpatialStatisticsTools

1.先进行引用
2.创建Geoprocessor 对象
3.设置参数
4.执行gp.Execute(XXX, null) 方法

调用buffer为例
在设置参数时,要根据工具的帮助文档,在ArcMap中打开。
注意输入、输出对象类型,也可以是路径。
在这里插入图片描述

Geoprocessor gp_buffer = new Geoprocessor();            
gp_buffer.OverwriteOutput = true;
//调用工具
ESRI.ArcGIS.AnalysisTools.Buffer pbuffer = new ESRI.ArcGIS.AnalysisTools.Buffer();
//buffer参数窗口
buffer_form.ShowDialog();
//设置参数
pbuffer.in_features = buffer_form.inputBox.Text;
pbuffer.out_feature_class = buffer_form.outputBox.Text;
pbuffer.buffer_distance_or_field = buffer_form.distanceBox.Text;
pbuffer.dissolve_option = buffer_form.dissolve_optionBox.Text;
//执行
gp_buffer.Execute(pbuffer,null);
//加载到map
string path = System.IO.Path.GetDirectoryName(buffer_form.outputBox.Text);
string name = System.IO.Path.GetFileName(buffer_form.outputBox.Text);
axMapControl1.AddShapeFile(path,name);

在这里插入图片描述

private void button1_Click(object sender, EventArgs e)
{
    
    
  base.Close();//关闭窗口buffer_form
}

GP调用自定义的Model

GP不但可以调用现有的工具,也可以调用自定义的Model
主要步骤如下:

//1、创建gp对象
Geoprocessor gp = new Geoprocessor();
gp.OverwriteOutput = true;
//2、加载工具Model,"Model"
gp.AddToolbox("C:\\Users\\12638\\Documents\\ArcGIS\\Toolbox.tbx");
//3、设置参数,严格按照顺序添加!注意参数格式
IVariantArray parameters = new VarArrayClass();
parameters.Add(namebase);
parameters.Add(rasterlayer);
//4、执行
gp.Execute("Model", parameters, null);

猜你喜欢

转载自blog.csdn.net/weixin_51205206/article/details/119916566