using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Geoprocessing; using ESRI.ArcGIS.Display; //入出力用パラメータ変数設定 string strAnalysis = "Buffer_Analysis"; //Buffer(同とtbxのエイリアス名を"_"で接続して記載) strAnalysis = "CustomModel"; //モデルビルダを呼び 名前を設定 //カスタムツールボックスを利用する場合 string strToolbox; strToolbox = @"C:\Documents and Settings\Administrator\Application Data\ESRI\Arcoolboxes\Toolbox.tbx"; strToolbox = @""; //システムツールを使指定 //パラメータ string[] strParameter = new string[2]; strParameter[0] = @"D:\Workspace\World.gdb\World\Lakes"; //入力フィーチャクラス strParameter[1] = @"1"; //Merters" '出力フィ strParameter[2] = @"D:\Workspace\World.gdb\World\Buffer"; //バッファの距離 //GeoProcessorの初期化 IGeoProcessor pGeoProcessor = new GeoProcessorClass(); //入出力用パラメータ変数をVarArrayオブジェクトに格納 IVariantArray pVariantArray = new VarArrayClass(); for(int i=0;i < strParameter.Length;++i){ pVariantArray.Add(strParameter[i]); } //ジオプロセシング設定 pGeoProcessor.OverwriteOutput = true; //上書き保存許可 pGeoProcessor.AddOutputsToMap = true; //出力フィーチャクラスをレイヤとして追加 if(strToolbox != ""){ pGeoProcessor.AddToolbox(strToolbox); } //CancelTrackerの設定 ITrackCancel pTrackCancel = new CancelTrackerClass(); pTrackCancel.CancelOnClick = false; pTrackCancel.CancelOnKeyPress = false; //実行処理 IGeoProcessorResult pGeoProcessorResult = null; try { pGeoProcessorResult = pGeoProcessor.Execute(strAnalysis, pVariantArray, pTrackCancel); Console.WriteLine(pGeoProcessorResult.GetMessages(0)); Console.ReadKey(); } catch { Console.WriteLine(pGeoProcessorResult.GetMessage(2)); Console.ReadKey(); }
Public Sub subGeoprocessing() '入出力用パラメータ変数設定 Dim strAnalysis As String strAnalysis = "Buffer_Analysis" 'Buffer(同一処理名の場合はツール名とtbxのエイリアス名を"_"で接続して記載) strAnalysis = "CustomModel" 'モデルビルダを呼び出す場合はプロパティ > 名前を設定 'カスタムツールボックスを利用する場合 Dim strToolbox As String strToolbox = "C:\Documents and Settings\Administrator\Application Data\ESRI\ArcToolbox\My Toolboxes\Toolbox.tbx" strToolbox = "" 'システムツールを使用する場合は空の文字列を指定 'パラメータ Dim strParameter(2) As String strParameter(0) = "D:\Workspace\World.gdb\World\Lakes" '入力フィーチャクラス strParameter(1) = "1" ' Merters" '出力フィーチャクラス strParameter(2) = "D:\Workspace\World.gdb\World\Buffer" 'バッファの距離 'GeoProcessorの初期化 Dim pGeoProcessor As IGeoProcessor Set pGeoProcessor = New GeoProcessor '入出力用パラメータ変数をVarArrayオブジェクトに格納 Dim pVariantArray As IVariantArray Set pVariantArray = New VarArray Dim i As Long For i = 0 To UBound(strParameter) - LBound(strParameter) pVariantArray.Add strParameter(i) Next i 'ジオプロセシング設定 pGeoProcessor.OverwriteOutput = True '上書き保存許可 pGeoProcessor.AddOutputsToMap = True '出力フィーチャクラスをレイヤとして追加 If Not strToolbox = "" Then pGeoProcessor.AddToolbox strToolbox End If 'CancelTrackerの設定 Dim pTrackCancel As ITrackCancel Set pTrackCancel = New CancelTracker pTrackCancel.CancelOnClick = False pTrackCancel.CancelOnKeyPress = True On Error GoTo Error: '処理実行 Dim pGeoProcessorResult As IGeoProcessorResult Set pGeoProcessorResult = pGeoProcessor.Execute(strAnalysis, pVariantArray, pTrackCancel) If Not strToolbox = "" Then pGeoProcessor.RemoveToolbox strToolbox End If Debug.Print pGeoProcessorResult.GetMessages(0) Exit Sub Error: 'エラー発生時 Debug.Print pGeoProcessor.GetMessages(2) End Sub