方法一:
1
m_agsBase.InitializeVar(CsMap);//m_agsBase为通用类,初始化地图控件,获取各个参数
2
3
IMap pMap = m_agsBase.GetMap();
4
6
7
8
9
10
IServerContext pSOC = m_agsBase.GetSOC();
11
IQueryFilter pQueryFilter = (IQueryFilter)pSOC.CreateObject("esriGeodatabase.QueryFilter");
12
pQueryFilter.WhereClause = txtQuery.Text;
13
14
//取地图上的第一个图层
15
ILayer pLayer = pMap.get_Layer(2);
16
IFeatureLayer pFeatureLyr = pLayer as IFeatureLayer;
17
IFeatureClass pFeatCls = pFeatureLyr.FeatureClass;
18
IFeatureCursor pFeatCursor = pFeatCls.Search(pQueryFilter, false);
19
2
3
4
6
7
8
9
10
11
12
13
14
15
16
17
18
19
上面的方法的思路总结:基于底层进行属性查找,一方面由SoC生成IQueryFilter,另一方面生成 IFeatureLayer,两者结合使用方法:search,返回结果为 IFeatureCursor
方法二:
方法二思路:1判断resource是否支持空间查询;
2生成queryfunction接口,并获取当前数据源中包含的可以查询的图层
3生成空间查询过滤器
4返回的结果为 Datatable
方法二是基于ADF框架的,而方法一是基于AO的