FAQ
GxDialog クラスを利用したデータセットの取得

ナレッジ番号:5305 | 登録日:2023/07/26 | 更新日:2023/12/28

 

概要

GxDialog クラスは ArcGIS for Desktop に用意された、データ アクセス用のダイアログです。データの読み込みや保存を行うための GUI を表示することができます。また、フィルタ設定により、特定の種類のデータだけを表示することもできます。

IGxDialog インタフェースのプロパティで以下の GUI を設定できます。

Image

  • Title:ダイアログのタイトル
  • StartingLocation:ダイアログの表示開始位置
  • AllowMultiSelect:ダイアログ内で複数のオブジェクトを選択できるかどうか
  • ObjectFilter:ダイアログ内で表示するオブジェクトの種類を制限するためのフィルタ ー
  • ButtonCaption:ボタンのキャプション

コード

GxDialog によるレイヤー ファイルの参照

GxDialog を使用して既存のレイヤ ファイルを選択してレイヤー オブジェクトを取得するサンプルです。

IMap pMap =   //Map の設定

IGxDialog pGxDialog = new GxDialogClass();

//プロパティの設定
pGxDialog.Title = "カスタム レイヤーの追加";                   //タイトル
pGxDialog.set_StartingLocation(@"C:\Temp");              //ディレクトリの開始位置
pGxDialog.AllowMultiSelect = true;                       //複数選択の許可
pGxDialog.ObjectFilter = new GxFilterLayersClass();      //オブジェクト フィルター
pGxDialog.ButtonCaption = "カスタム追加";                   //ボタンのキャプション

//GxDialog の表示
IEnumGxObject pEnumGxObject = null;
pGxDialog.DoModalOpen(0, out pEnumGxObject);

IGxObject pGxObject = pEnumGxObject.Next();

while (pGxObject != null)
{
    IGxLayer pGxLayer = (IGxLayer)pGxObject;

    //マップにレイヤーを追加
    pMap.AddLayer(pGxLayer.Layer);

    pGxObject = pEnumGxObject.Next();
}
Dim pMap As IMap =   'Map の設定

Dim pGxDialog As IGxDialog = New GxDialogClass()

'プロパティの設定
pGxDialog.Title = "カスタム レイヤーの追加"                     'タイトル
pGxDialog.StartingLocation = "C:\Temp"                    'ディレクトリの開始位置
pGxDialog.AllowMultiSelect = True                         '複数選択の許可
pGxDialog.ObjectFilter = New GxFilterLayersClass()        'オブジェクト フィルター
pGxDialog.ButtonCaption = "カスタム追加"                     'ボタンのキャプション

'GxDialog の表示
Dim pEnumGxObject As IEnumGxObject = Nothing
pGxDialog.DoModalOpen(0, pEnumGxObject)

Dim pGxObject As IGxObject = pEnumGxObject.Next()

Do While Not pGxObject Is Nothing
    Dim pGxLayer As IGxLayer = CType(pGxObject, IGxLayer)

    'マップにレイヤーを追加
    pMap.AddLayer(pGxLayer.Layer)

    pGxObject = pEnumGxObject.Next()
Loop

フォルダー接続して GxDialog を起動

以下のサンプル コードはフォルダー接続してから GxDialog を起動する サンプル コードです。 "C:\Student" というフォルダーとフォルダー接続が確立された状態で カタログ ウィンドウが表示されます。
IGxFile pGxFile;
IGxCatalog pCat;
IGxDialog pGxDialog;
pGxDialog = new GxDialogClass();
pCat = pGxDialog.InternalCatalog;
pCat.ConnectFolder(@"C:\student"); //接続したいフォルダーを設定

pGxFile = (IGxFile)pCat;
pGxFile.Save();
IEnumGxObject penum;
if (pGxDialog.DoModalOpen(0, out penum) == false) return;
Dim pGxFile As IGxFile
Dim pCat As IGxCatalog
Dim pGxDialog As IGxDialog
pGxDialog = New GxDialog
pCat = pGxDialog.InternalCatalog
pCat.ConnectFolder("C:\student") '接続したいフォルダーを設定

pGxFile = pCat
pGxFile.Save()
Dim penum As IEnumGxObject
If (pGxDialog.DoModalOpen(0, penum) = False) Then Exit Sub

制限

GxDialog クラスは ArcGIS for Desktop ライセンスでのみで利用できます。

メタデータ

種類

製品