FAQ
レイヤのデータソースを変更する方法

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

【概要】

以下に、ArcMapのレイヤのデータソースをプログラミングにより変更するサンプルコードを示します。


【手順】

  1. ArcMapを起動し、フィーチャクラスをマップへ追加します。
  2. UIButtonControlを作成します。

    A:[ツール] > [カスタマイズ]を選択し、カスタマイズダイアログボックスを開きます。
    B:[コマンド]タブをクリックします。
    C:[カテゴリ]リストボックスから[UIControls]を選択します。
    D:[保存先]ドロップダウンリストから[無題]を選択し、このマップドキュメントにボタンを保存します。全てのArcMapドキュメントにボタンを保存したい場合は[Normal]を選択します。
    E:[新規UIControl]をクリックします。
    F:[UIButtonControl]を選択し作成します。
    G:新規UIButtonControlを適当なツールバー上にドラッグします。
    H:カスタマイズダイアログボックスを閉じます。

    ※UIControlの作成に関する詳細については、ArcGIS Desktop Helpの"How to create custom commands with VBA"をご覧下さい。"

  3. UIButtonControlを右クリックし、[ソースの表示]を選択します。
  4. UIButtonControlのClickイベントに以下のコードをコピーします。

    
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    Dim pMap As IMap
    Set pMap = pMxDoc.ActiveView
    
    Dim pFeatLayer As IFeatureLayer
    Set pFeatLayer = pMap.Layer(0)
    
    Dim pDataLayer As IDataLayer
    
    Set pDataLayer = pFeatLayer Dim pName As IName Dim strTable As String Dim strLocation As String ' シェープファイルを含むフォルダのパスを設定します。 strLocation = "C:\testing\canada" ' データソースとして使用されるシェープファイル名を設定します。 strTable = "provinces" Dim pDatasetName As IDatasetName Dim pTable As ITable Dim pWrkspc As IWorkspaceName
    Set pWrkspc = New WorkspaceName pWrkspc.PathName = strLocation ' シェープファイル以外のデータソースを使用している場合、
    ' ワークスペースのタイプを変更する必要があります。 pWrkspc.WorkspaceFactoryProgID = "esricore.shapefileworkspacefactory.1" Set pDatasetName = New TableName pDatasetName.Name = strTable Set pDatasetName.WorkspaceName = pWrkspc Set pName = pDatasetName Set pTable = pName.Open Dim pGeoDataset As IGeoDataset Set pGeoDataset = pTable Set m_pEnv = pGeoDataset.Extent Dim pFcName As IDatasetName Set pFcName = pName pDataLayer.DataSourceName = pName Dim pAV As IActiveView Set pAV = pMap pAV.Extent = m_pEnv Set pAV = pMap pAV.Refresh

  5. strLocationとstrTableに割り当てられた変数をシェープファイルデータソースに変更します。

  6. UIButtonControlをクリックし、コードを実行してレイヤのデータソースを変更します。

メタデータ

機能

種類

製品