FAQ
ArcObjects で別のコントロールに表示されたマップを表示する

ナレッジ番号:3399 | 登録日:2023/05/29 | 更新日:2023/08/31

概要

別のコントロールや、ArcMapのアクティブ データフレームに表示されたマップを特定のコントロールで表示することができます。その場合、IObjectCopy インターフェイスを使用して Map オブジェクトの複製を行います。

例1: axMapControl1に表示したマップを axPageLayoutControl1 で表示

Object mapCopy; //コピー元
Object mapOverwrite;    //コピー先
IObjectCopy objCopy;
IActiveView pActiveView;

//それぞれのコントロールのマップを設定
mapCopy = axMapControl1.Map;
mapOverwrite = axPageLayoutControl1.ActiveView.FocusMap;

//IObjectCopy クラスのインスタンスを作成
objCopy = new ObjectCopyClass();
//マップ オブジェクトの上書き
objCopy.Overwrite(mapCopy, mapOverwrite);
//マップの再描画
pActiveView = mapOverwrite as IActiveView;
pActiveView.Refresh();

例2: ArcMap で表示したマップを axMapControl1に表示する

public partial class Form1 : Form
{
  private IObjectCopy pObjectCopy;
  private IMap pCopyMap;
 
  public Form1()
  {
      InitializeComponent();
 
      //ArcMap 上の IMap 型のオブジェクトを取得
      IMap pMap = ArcMap.Document.FocusMap;
 
      //オブジェクトのコピーを作成
      pObjectCopy = new ObjectCopyClass();
      pCopyMap = (IMap)pObjectCopy.Copy(pMap);
 
      //コピーしたオブジェクトを設定
      axMapControl1.Map = pCopyMap;
  }
}

メタデータ

種類

製品