マップの全体表示に対するカスタム範囲を設定する方法

      2009/07/19

ArcGIS 9.2から,「全体表示」ボタンを押したときの全体範囲をカスタマイズできるようになりました(9.1まではデータフレームに追加されている全部のレイヤが表示される範囲しか設定できませんでした)。

arcmap
ArcMap > レイヤ(データフレーム)のプロパティ > データフレーム > 全体表示コマンドの表示範囲

カスタマイズでこれを設定したいことがあったのでそれっぽいプロパティを探しても自力で解決できなかったので,サポートに問い合わせてみました。そしたら定番インタフェース内に該当のプロパティが存在してました。

Dim pMxDocument As IMxDocument
Set pMxDocument = ThisDocument

Dim pMap As IMap
Set pMap = pMxDocument.FocusMap

Dim pActiveView As IActiveView
Set pActiveView = pMxDocument.ActiveView

Dim pEnvelope As IEnvelope
Set pEnvelope = pActiveView.Extent  '[全体表示]コマンド実行時に設定したい範囲

'1. 全てのレイヤの表示範囲(デフォルト)を設定
Set pMap.AreaOfInterest = pActiveView.FullExtent

'2. その他(現在表示されている範囲)を設定
Set pMap.AreaOfInterest = pEnvelope

まさかIMapインタフェースの問い合わせをするとは,,,しかもIMapにあるってことは,実はArcInfo 8.01から使える機能だったんですね。

 - ArcGIS, ArcObjects, GIS