YouTube | Facebook | X(Twitter) | RSS

ジオプロセシングの使用方法

2016/9/1 (木)

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
  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

-プログラミング, ArcGIS
-, ,