错误 3 “IFeatureLayer”在命名空间“ESRI.ArcGIS.Carto”中不明确。

2025-04-29 17:26:05
推荐回答(1个)
回答1:

我写一个函数:通过图层名称来获得图层,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#region 获取图层(根据图层名称)
///


/// 获取图层(根据图层名称)
///

/// 图层名称
/// 要素类
private IFeatureLayer GetLayerByName(string layerName)
{
try
{
IFeatureLayer pFeatureLayer = null;
IFeatureLayer reFeatureLayer = null;
for (int i = 0; i < axMapControl1.LayerCount; i++)
{
pFeatureLayer = (IFeatureLayer)axMapControl1.get_Layer(i); //报错
if (pFeatureLayer.Name == layerName)
{
reFeatureLayer= pFeatureLayer;
}
}
return reFeatureLayer;
}
catch (System.Exception ex)
{
MessageBox.Show("获取图层失败:"+ex.Message);
return null;
}
}
#endregion
最后的问题原来是:图层的问题,我遍历的图层中有栅格图层,它不是FeatureLayer,所以在遍历的时候要做一下判断.
http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=47628