- 问题
如何调用GP工具。
- 解决方案
执行IGeoProcessor.Execute方法调用GP工具。
IGeoProcessor pGeoProcessor = new GeoProcessorClass();
IVariantArray pVariantArray = new VarArrayClass();
object varParr = "'" + var1 + "'#;'" + var2 + "'#;";
pVariantArray.Add(varParr);
pVariantArray.Add(varResult);
IGeoProcessorResult pGeoProcessorResult = pGeoProcessor.Execute(toolname_toolalias,
pVariantArray, null);
- 讨论
执行工具时,传入的第一个参数Name为工具的语法名称,具体可以打开该工具的Tool Help,Synatx关键字下面显示的即为工具的语法名称。 如:
Syntax
Intersect_analysis (in_features, out_feature_class, {join_attributes}, {cluster_tolerance}, {output_type})
Intersect_analysis 就是工具语法名称。in_features建议使用数据的绝对路径,如:
@"E:\work\vm_src\10.3\440784db.mdb\KJSJ\ZDJBXX_DB #;C:\Users\Xinying\AppData\Roaming\ESRI\Desktop10.3\ArcCatalog\Connection to 192.168.1.1.sde\SDE.ZDJBXX_DB #"
SDE中的绝对路劲为.sde连接文件的绝对路径+要素类名称,在ArcObjects中可用IWorkspaceFactory.Create()方法创建SDE文件。另外,可在ArcGIS Desktop中执行该工具,在消息中可以查看参数的写法。
工具执行成功的消息可通过pGeoProcessorResult查看,如果执行失败可能过pGeoProcessor.GetReturnMessages()获取详细报错信息。
- See Also
How to run a geoprocessing tool
How to get returned messages
网友评论