ArcGis マップを読み込み、1 つのレイヤーでいくつかのオブジェクトを選択してズームするスタンドアロン アプリケーションを作成しようとしています。
次のようなものを使用して、マップの読み込みと表示が機能します。
AxMapControl _mapControl;
// in constructor:
_mapControl = new AxMapControl();
// in loading
_mapControl.LoadMxFile(@"C:\Users\me\Documents\TestProject.mxd");
これはうまく機能し、マップを完全に表示します (もちろん、AxMapControl は WindowsFormsHost に埋め込まれていますが、これは問題になりません)。
しかし、今度は 1 つまたは複数のオブジェクトを選択してズームする必要があります。テストのために1つのレイヤーを選択しようとしましたが、これはまったく機能しません:
IFeatureSelection features = _mapControl.Map.Layer[0] as IFeatureSelection;
if (features != null)
{
QueryFilter qf = new QueryFilterClass();
qf.WhereClause = "[Name]='FS4711000'";
features.SelectFeatures(qf, esriSelectionResultEnum.esriSelectionResultNew, false);
}
SelectFeatures 呼び出しで、ESRI.ArcGIS.Carto で COM エラー 80004005 (E_Fail) が発生しますが、これ以上の説明はありません。おそらく私はそれをすべて間違っています。
多分誰かがレイヤー内のオブジェクトを選択する方法のサンプルを持っていますか?