QueryFilter属性查询
-
得到将要查询的图层
IFeatureLayer pFeatureLayer = this.axMapControl1.get_Layer(0) as IFeatureLayer; IFeatureSelection pFeatureSelection = pFeatureLayer as IFeatureSelection;
-
创建查询,并设置属性
IQueryFilter pQueryFilter = new QueryFilterClass(); pQueryFilter.WhereClause = "ID = 2"; //查询条件
-
执行查询
pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);
-
刷新图层
axMapControl1.Refresh();
SpatialFilter空间查询
-
得到将要查询的图层
IFeatureLayer pFeatureLayer = axMapControl1.get_Layer(layerNum) as IFeatureLayer;
-
创建空间查询类
ISpatialFilter spatialFilter = new SpatialFilterClass(); //设置过滤器的Geometry属性 IPoint pPoint = new PointClass(); pPoint.PutCoords(e.mapX, e.mapY); spatialFilter.Geometry = pPoint; spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; //空间过滤关系
-
执行查询,并返回游标
IFeatureCursor featureCursor = pFeatureLayer.Search(spatialFilter, false);
-
遍历结果,进行闪烁
IFeature pFeature; while ((pFeature = featureCursor.NextFeature()) != null) { axMapControl1.FlashShape(pFeature.Shape); //在地图控件上闪烁显示图形 }
Cursor游标
本质上是一个指向数据的指针,本身并不包含数据内容,它是连接到Row对象或要素对象的桥梁
三种类型:
- 查询游标
- 插入游标
- 更新游标
通过与之相适应的方法来获得,如Search、Insert、Update方法