Я пытаюсь создать автономное приложение, которое загружает карту 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 без особых объяснений. Наверное, я все делаю не так.
Может у кого-то есть образец, как выделять объекты в слое?