方法一:      

 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看两种不同的图层查询方法

上面的方法的思路总结:基于底层进行属性查找,一方面由SoC生成IQueryFilter,另一方面生成 IFeatureLayer,两者结合使用方法:search,返回结果为 IFeatureCursor

方法二:

看两种不同的图层查询方法  IEnumerable func_enum = null;
看两种不同的图层查询方法        func_enum 
= CsMap.GetFunctionalities();
看两种不同的图层查询方法
看两种不同的图层查询方法        System.Data.DataTable mytable;
看两种不同的图层查询方法
看两种不同的图层查询方法        
foreach (ESRI.ArcGIS.ADF.Web.DataSources.IMapFunctionality gisfunctionality in func_enum)
], spatialfilter);


方法二思路:1判断resource是否支持空间查询;
2生成queryfunction接口,并获取当前数据源中包含的可以查询的图层
3生成空间查询过滤器
4返回的结果为 Datatable

 

方法二是基于ADF框架的,而方法一是基于AO的

相关文章:

  • 2021-08-19
  • 2021-12-17
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2021-12-22
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-28
  • 2022-12-23
  • 2022-01-16
  • 2021-10-06
  • 2022-12-23
相关资源
相似解决方案