FAQ
選択許容値を考慮したフィーチャの選択

ナレッジ番号:5271 | 登録日:2023/07/26 | 更新日:2024/10/09

概要

ArcMap の ドキュメント(MxDocument)には選択許容値(SearchTolerance)が設定されています。

選択許容値をデフォルトから指定した値に変更し、フィーチャをクリック時に適用する方法をご紹介します。

※デフォルトでは選択許容値は 3 ピクセルに設定されています。

サンプル コード

このサンプル コードでは選択許容値をデフォルトから 30 ピクセルに変更し、選択したフィーチャに選択許容値を適用します。

IMxDocument 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();  //これを行わないと選択されなかった時に再描画が正しく行われない
Dim 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 の [選択] メニュー → [選択オプション] → [選択ツールの設定] → [選択許容値] に設定したい値を設定することでも、選択許容値を変更することができます。

Image

メタデータ

機能

種類

製品