FAQ
選択許容値を考慮したフィーチャの選択
ナレッジ番号:5271 | 登録日:2023/07/26 | 更新日:2024/11/21
概要
ArcMap の ドキュメント(MxDocument)には選択許容値(SearchTolerance)が設定されています。
選択許容値をデフォルトから指定した値に変更し、フィーチャをクリック時に適用する方法をご紹介します。
※デフォルトでは選択許容値は 3 ピクセルに設定されています。
サンプル コード
このサンプル コードでは選択許容値をデフォルトから 30 ピクセルに変更し、選択したフィーチャに選択許容値を適用します。
C# 1234567891011121314151617181920IMxDocument pMxDocument = ArcMap.Document;
IMap pMap = pMxDocument.FocusMap;
IActiveView pActiveView = pMxDocument.ActiveView;
IMxApplication pMxApplication = ArcMap.ThisApplication;
//選択許容値の設定
ISelectionEnvironment pSelectionEnvironment = pMxApplication.SelectionEnvironment;
pSelectionEnvironment.SearchTolerance = 30;
//クリックした範囲の取得
IPoint pPoint = pMxDocument.CurrentLocation;
IEnvelope pEnvelope = pPoint.Envelope;
pEnvelope.Expand(pMxDocument.SearchTolerance, pMxDocument.SearchTolerance,
false
);
//選択したフィーチャに選択許容値を適用
pMap.SelectByShape(pEnvelope, pSelectionEnvironment,
true
);
//新しい選択範囲の再描画
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,
null
,
null
);
((IViewRefresh)pMap).RefreshCaches();
//これを行わないと選択されなかった時に再描画が正しく行われない
Visual Basic 123456789101112131415161718192021Dim
pMxDocument
As
IMxDocument = My.ArcMap.Document
Dim
pMap
As
IMap = pMxDocument.FocusMap
Dim
pActiveView
As
IActiveView = pMxDocument.ActiveView
Dim
pMxApplication
As
IMxApplication = My.ArcMap.ThisApplication
'選択許容値の設定
Dim
pSelectionEnvironment
As
ISelectionEnvironment = pMxApplication.SelectionEnvironment
pSelectionEnvironment.SearchTolerance = 30
'クリックした範囲の取得
Dim
pPoint
As
IPoint = pMxDocument.CurrentLocation
Dim
pEnvelope
As
IEnvelope = pPoint.Envelope
pEnvelope.Expand(pMxDocument.SearchTolerance, pMxDocument.SearchTolerance,
False
)
'選択したフィーチャに選択許容値を適用
pMap.SelectByShape(pEnvelope, pSelectionEnvironment,
True
)
'新しい選択範囲の再描画
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,
Nothing
,
Nothing
)
CType
(pMap, IViewRefresh).RefreshCaches()
'これを行わないと選択されなかった時に再描画が正しく行われない
ArcMap 上で変更する方法
ArcMap の [選択] メニュー → [選択オプション] → [選択ツールの設定] → [選択許容値] に設定したい値を設定することでも、選択許容値を変更することができます。
メタデータ
種類
機能
製品