鏈接:https://www.jianshu.com/p/16a4950fec55
來源:簡書
- 問題
如何調用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