ArcGIS Engine中调用GP的两种方法
2012-06-18 19:00
246 查看
借用别人的东西,将这两种方法放在一起:
第一种,分别设置参数:
另一种添加参数:
ESRI官方帮助示例:
1.
2.
参考地址:
http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/c4ff8b68-0410-435f-b8e5-682d5cea47cf.htm
第一种,分别设置参数:
//添加命名空间 using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Geoprocessor; //实现button click方法 private void button1_Click(object sender, EventArgs e) { //构造Geoprocessor Geoprocessor gp = new Geoprocessor(); //设置参数 ESRI.ArcGIS.AnalysisTools.Intersect intersect = new ESRI.ArcGIS.AnalysisTools.Intersect(); intersect.in_features = @"F:\foshan\Data\wuqutu_b.shp;F:\foshan\Data\world30.shp"; intersect.out_feature_class = @"E:\intersect.shp"; intersect.join_attributes = "ONLY_FID"; //执行Intersect工具 RunTool(gp, intersect, null); } private void RunTool(Geoprocessor geoprocessor, IGPProcess process, ITrackCancel TC) { // Set the overwrite output option to true geoprocessor.OverwriteOutput = true; try { geoprocessor.Execute(process, null); ReturnMessages(geoprocessor); } catch (Exception err) { Console.WriteLine(err.Message); ReturnMessages(geoprocessor); } } // Function for returning the tool messages. private void ReturnMessages(Geoprocessor gp) { string ms = ""; if (gp.MessageCount > 0) { for (int Count = 0; Count <= gp.MessageCount - 1; Count++) { ms += gp.GetMessage(Count); } }
另一种添加参数:
//1-定义GeoProcessor对象 Geoprocessor gp = new Geoprocessor(); object sev = null; //2-设置参数 gp.OverwriteOutput = true; //3-设置工具箱所在的路径 gp.AddToolbox(@"F:\lib_test\AirportsAndGolf.tbx"); //4-设置输入参数 IVariantArray parameters = new VarArrayClass(); parameters.Add(@"F:\lib_test\地下水重金属数据.xls\Sheet1$"); parameters.Add("`YEAR` = 2009"); parameters.Add("W20111"); parameters.Add(@"F:\lib_test\temp.gdb\tempwww"); //5-执行工具 gp.Execute("ModelAnalysis", parameters, null);
ESRI官方帮助示例:
1.
using ESRI.ArcGIS.Geoprocessor; using ESRI.ArcGIS.AnalysisTools; public void SampleBufferTool() { // Initialize the geoprocessor. Geoprocessor GP = new Geoprocessor(); ESRI.ArcGIS.AnalysisTools.Buffer bufferTool = new ESRI.ArcGIS.AnalysisTools.Buffer(); bufferTool.in_features = @"D:\St_Johns\data.mdb\roads_Buffer"; bufferTool.out_feature_class = @"D:\St_Johns\data.mdb\roads"; bufferTool.buffer_distance_or_field = "distance"; GP.Execute(bufferTool, null); }
2.
using ESRI.ArcGIS.Geoprocessor; using ESRI.ArcGIS.esriSystem; public void SampleCalculateBestPathTool() { // Initialize the geoprocessor. Geoprocessor GP = new Geoprocessor(); // Add the BestPath toolbox. GP.AddToolbox(@"C:\SanDiego\BestPath.tbx"); // Generate the array of parameters. IVariantArray parameters = new VarArrayClass(); parameters.Add(@"C:\SanDiego\source.shp"); parameters.Add(@"C:\SanDiego\destination.shp"); parameters.Add(@"C:\SanDiego\bestpath.shp"); // Execute the model tool by name. GP.Execute("CalculateBestPath", parameters, null);
参考地址:
http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/c4ff8b68-0410-435f-b8e5-682d5cea47cf.htm
相关文章推荐
- ArcGIS Engine中调用GP的两种方法
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结
- ASP.NET调用存储过程两种方法浅析
- table类型(字典)两种方法调用里面的对象
- C# 代码示例详尽剖析异步调用的两种方法
- 两种不同的存储过程调用方法
- 第2章 两种调用JS的方法——在HTML中使用JavaScript
- 比较两种php调用Java对象的方法
- ASP.NET调用存储过程两种方法浅析 (转)
- 两种调用外部样式的方法
- dedecms调用当前栏目的子栏目的两种方法分享
- Axis2 的 RPC 和 AXIOM 服务端方法的两种调用方式
- Java SE6调用Java编译器的两种新方法
- VC++ 调用 C#生成DLL的两种方法
- VC++ (MFC)调用 C#生成DLL的两种方法
- DLL编程和两种调用方法调用
- c#中两种常用的异步调用方法
- 接口 两种调用http接口的方法
- 这是采用两种方法来调用WebServic
- Shell脚本中调用、引用、包含另外一个脚本文件的两种方法