我正在尝试创建一个独立的应用程序,它加载 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 调用中,我在 ESRI.ArcGIS.Carto 中收到 COM 错误 80004005 (E_Fail),没有更多解释。可能我做错了。
也许有人有一个示例如何选择图层中的对象?