FAQ
ArcObjects でのマップへのアクセス

ナレッジ番号:2670 | 登録日:2023/05/29 | 更新日:2023/12/28

 

概要

データ フレームにアクセスする方法を示します。ArcObjects では、データ フレームを ”マップ” といい、Map クラス(IMap インタフェース)でアクセスします。マップは、マップ ドキュメントからアクセスでき、アクティブなマップを取得する方法と、マップ ドキュメント内のすべてのマップを取得する方法があります。また、ArcGIS Engine Developer Kit で利用できる MapControl からマップを取得する方法も示します。

コード

マップ ドキュメントからアクティブなマップを取得

ArcMap のマップ ドキュメント(IMxDocument)の、データ ビューで現在アクティブになっているマップ(IMap)を取得するには IMxDocument::FocusMap プロパティを使用します。

IMxDocument pMxDocument = ArcMap.Document; //アドインの場合
IMap pMap = pMxDocument.FocusMap;
Dim pMxDocument As IMxDocument = My.ArcMap.Document 'アドインの場合
Dim pMap As IMap = pMxDocument.FocusMap

すべてのマップをコレクションとして取得し、個々のマップを取得

マップ ドキュメントから個々のマップを取得するには、すべてのマップをコレクションとして取得し、コレクション内の個々のマップにアクセスします。マップのコレクションは IMxDocument::Maps プロパティからアクセスし、戻り値を IMaps 型で受け取ります。個々のマップは IMaps::Item プロパティで取得します。引数にはマップのインデックス番号を最上位 0 として指定します。

IMaps pMaps = pMxDocument.Maps;
IMap pMap;
for (int i = 0; i <= pMaps.Count - 1; i++)
{
  pMap = pMaps.get_Item(i);
  MessageBox.Show(pMap.Name); //マップの名前を表示
}
Dim pMaps As IMaps = pMxDocument.Maps
Dim pMap As IMap
For i As Long = 0 To pMaps.Count -1
  pMap = pMaps.Item(i)
  MessageBox.Show(pMap.Name) 'マップの名前を表示
Next i

MapControl 上のマップを取得

MapControl からマップを取得するサンプルです。

IMap pMap = axMapControl1.Map; //axMapControl1 = マップ コントロール オブジェクト変数
Dim pMap As IMap = axMapControl1.Map 'axMapControl1 = マップ コントロール オブジェクト変数

メタデータ

種類

製品