FAQ
List... メソッドを使用したジオプロセシングのバッチ処理

ナレッジ番号:5332 | 登録日:2023/07/26 | 更新日:2024/11/21

概要

IGeoProcessor の List... メソッドを使用することで、指定したパス内のデータのリストを取得できます。

List メソッドには以下があります。メソッドによって取得できるデータ タイプが異なります。また、ワイルドカードを指定して特定の文字列を含むデータを取得することもできます。

  • ListDatasets       :指定したしたワークスペース内のデータセット
  • ListEnvironments     :現在のジオプロセシング セッション内の環境設定
  • ListFeatureClasses    :指定したワークスペース内のフィーチャクラス
  • ListRasters       :指定したワークスペース内のラスタ
  • ListTables        :指定したワークスペース内のテーブル
  • ListToolboxes      :現在のジオプロセシング セッション内のツールボックス
  • ListTools        :現在のジオプロセシング セッション内のツール
  • ListWorkspaces     :指定したフォルダ内のワークスペース

サンプル コード

このサンプルでは、指定したワークスペース内のすべてのライン フィーチャクラスを取得し、コピーするツールを実行しています。

IGpEnumList pGpEnumList;
string strFeatureClass;
IVariantArray pVariantArray;
IGeoProcessor pGeoProcessor = new GeoProcessorClass();
pGeoProcessor.SetEnvironmentValue("WORKSPACE", @"C:\GeoDatabase.gdb");  //環境設定
pGpEnumList = pGeoProcessor.ListFeatureClasses("*", "Polyline", "");     //ジオデータベース直下のすべての文字列を含むポリラインを指定
pGpEnumList.Reset();
strFeatureClass = pGpEnumList.Next();

while(strFeatureClass != "")
{
    pVariantArray = new VarArrayClass();
    pVariantArray.Add(strFeatureClass);
    pVariantArray.Add(@"C:\Output\New File Geodatabase.gdb\" + strFeatureClass);
    pGeoProcessor.Execute("copy_management", pVariantArray, null);  //[コピー]
    pVariantArray.RemoveAll();
    strFeatureClass = pGpEnumList.Next();
}
Dim pGpEnumList As IGpEnumList
Dim strFeatureClass As String
Dim pVariantArray As IVariantArray
Dim pGeoProcessor As IGeoProcessor = New GeoProcessorClass()
pGeoProcessor.SetEnvironmentValue("WORKSPACE", "C:\GeoDatabase.gdb")  '環境設定
pGpEnumList = pGeoProcessor.ListFeatureClasses("*", "POLYLINE", "")  'ジオデータベース直下のすべての文字列を含むポリラインを指定
pGpEnumList.Reset()
strFeatureClass = pGpEnumList.Next()

Do While strFeatureClass <> ""
    pVariantArray = New VarArrayClass()
    pVariantArray.Add(strFeatureClass)
    pVariantArray.Add("C:\Output\New File Geodatabase.gdb\" & strFeatureClass)
    pGeoProcessor.Execute("copy_management", pVariantArray, Nothing)  '[コピー]
    pVariantArray.RemoveAll()
    strFeatureClass = pGpEnumList.Next()
Loop

参考情報

IGeoProcessor2 Interface

メタデータ

機能

種類

製品