FAQ
選択したフィーチャにズームする方法

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

概要

ArcMap でレイヤーを右クリックし、[選択] → [選択フィーチャにズーム] をクリックすることによって選択したフィーチャにズームすることができます。

これを ArcObjects によって実現する方法を以下に示します。

Image

サンプル コード

マップ レイヤーに追加されているレイヤーのフィーチャを選択してから、下記のサンプル コードを実行してください。

IMxDocument pMxDoc = ArcMap.Document;
IMap pMap = pMxDoc.FocusMap;
IFeatureLayer pLayer = (IFeatureLayer)pMap.get_Layer(0);

//選択フィーチャの取得
IFeatureSelection pFeatureSelection = (IFeatureSelection)pLayer;
ISelectionSet pSelSet = pFeatureSelection.SelectionSet;

//選択フィーチャの範囲を取得
IEnumGeometry pEnumGeom = new EnumFeatureGeometryClass();
IEnumGeometryBind pEnumGeomBind = (IEnumGeometryBind)pEnumGeom;
pEnumGeomBind.BindGeometrySource(null, pSelSet);

IGeometryFactory pGeomFactory = new GeometryEnvironmentClass();
IGeometry pGeom = pGeomFactory.CreateGeometryFromEnumerator(pEnumGeom);

//マップの範囲を指定
pMxDoc.ActiveView.Extent = pGeom.Envelope;
pMxDoc.ActiveView.Refresh();
Dim pMxDoc As IMxDocument = My.ArcMap.Document
Dim pMap As IMap = pMxDoc.FocusMap
Dim pLayer As IFeatureLayer = pMap.Layer(0)

'選択フィーチャの取得
Dim pFeatureSelection As IFeatureSelection = pLayer
Dim pSelset As ISelectionSet = pFeatureSelection.SelectionSet

'選択フィーチャの範囲を取得
Dim pEnumGeom As IEnumGeometry = New EnumFeatureGeometry
Dim pEnumGeoBind As IEnumGeometryBind = pEnumGeom
pEnumGeoBind.BindGeometrySource(Nothing, pSelset)

Dim pGeomFactory As IGeometryFactory = New GeometryEnvironment
Dim pGeom As IGeometry = pGeomFactory.CreateGeometryFromEnumerator(pEnumGeom)

'マップの範囲を指定
pMxDoc.ActiveView.Extent = pGeom.Envelope
pMxDoc.ActiveView.Refresh()

メタデータ

機能

種類

製品