Я пытаюсь создать отдельное приложение, которое загружает карту ArcGis, выбирает несколько объектов в одном слое и увеличивает их.
Загрузка и отображение карты работает, используя что-то вроде этого:
AxMapControl _mapControl;
// in constructor:
_mapControl = new AxMapControl();
// in loading
_mapControl.LoadMxFile(@"C:\Users\me\Documents\TestProject.mxd");
Это работает хорошо и отображает карту как полный экстент (конечно, AxMapControl встроен в WindowsFormsHost, но это не должно быть проблемой).
Но теперь мне нужно выбрать один или несколько объектов и увеличить их. Я пытался выбрать один слой для тестирования, но это не работает вообще:
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 я получаю ошибку COM 80004005 (E_Fail) в ESRI.ArcGIS.Carto, без более подробного объяснения. Вероятно, я все делаю неправильно.
Может быть, у кого-то есть пример, как выбирать объекты в слое?