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);