在ArcObjects应用程序中使用Geoprocessing工具

Posted by 蒋波涛 7 March,2008 Views (6)Comment

Geoprocessing是ArcGIS的一个基础组成部分。无论你是一个新手抑或老资格的专家,geoprocessing都是你使用ArcGIS完成每天工作的一部分。它提供了数据分析、数据管理和数据转换等对于所用GIS用户都必须的工具,当然也包括ArcObjects开发者。

 GIS程序通常需要操作和分析地理数据,如将数据集从一种投影转换为另一种投影,为表添加字段,或者为要素添加缓冲区。ArcGIS9包括了上百个geoprocessing工具来执行这些任务。本文将介绍ArcGIS Desktop和ArcGIS Engine用户如何中ArcObjects应用程序中使用这些geoprocessing工具。

 Geoprocessor

Geoprocessor是简化调用geoprocessing工具任务的主要对象。这个对象是执行ArcGIS中任何geoprocessing工具的唯一访问点,它是一个粗粒度对象,包含了许多属性和方法,使得下面的操作变为可能:运行工具,设置全局环境参数;检查结果消息,执行批处理,访问数据属性。

Toolboxes为geoprocessor定义了一套工具,Toolboxes可以添加到geoprocessor中,也可以从中删除。(这句话的意思是,所有的geoprocessing都保存在Toolboxes中,Geoprocessor可以通过调用这些Toolbox的方式实现执行其中地理工具的目的;当然,它还可以直接调用工具类的方式执行)

 geoprocessor对象可以使用任何语言,包括VB,.NET和Java,来进行访问。本文所有的代码都将使用C#。帮助也为Java开发者提供了“Additional Resources for Programming with Geoprocessing Tools”资源。

ArcGIS9.2包含了一个新的.NET程序集ESRI.ArcGIS.Geoprocessor。它包含了一个被称为Geoprocessor的托管类。每一个ESRI提供的toolbox也都表现为一个托管程序集。在每一个toolbox程序集中,都拥有许多类来表示每个geoprocessing工具。工具类的都是使用Geoprocessor来调用和运行的。(这句话的意思是我们还有第二种调用地理工具的方法,即直接访问其类)

下面的代码显示了如何调用一个buffer工具:using ESRI.ArcGIS.Geoprocessor;
using ESRI.ArcGIS.AnalysisTools;
// Initialize the Geoprocessor
GeoProcessor GP = new Geoprocessor();
// Set workspace environment
GP.SetEnvironmentValue(“workspace”, @ “C:\Data\Nfld.
gdb”);
// Initialize the Buffer Tool
Buffer bufferTool = new Buffer();
bufferTool.in_features = “roads”;
bufferTool.out_feature_class = “roads_500”;
bufferTool.buffer_Distance_or_field = “500 METERS”;
// Execute the buffer
GP.Execute(bufferTool, null)

Related Items

Categories : ArcObjects Tags : ArcGIS Engine  ArcObjects  
Comments
2008-12-9 20:32:32

只支持.net吧,vb或delphi中,找不到AnalysisTools;

Posted by arey Gravatar Icon

2008-12-9 20:43:56

vb不太清楚,不过delphi是肯定不支持的

Posted by 蒋波涛 Gravatar Icon

2009-8-20 0:06:51

using ESRI.ArcGIS.AnalysisTools 我怎么找不到呀?

Posted by HELLO Gravatar Icon

2009-8-20 20:08:17

http://edndoc.esri.com/arcobjects/9.2/net_api_ref/GP/topic82.html,看看这个

Posted by 蒋波涛 Gravatar Icon

2010-5-25 16:11:18

不过delphi是肯定不支持的
---------------------------------------
谁说delphi不支持?

Posted by overcash Gravatar Icon

2010-5-25 17:19:59

这年头还有用Delphi写程序的人,还是挺稀罕的。不过从根本上讲,凡是支持COM的语言都还可以利用AO继续写下去的。

Posted by 蒋波涛 Gravatar Icon

Leave a comment

Or, take a look at Archives and Categories

目录

存档