文章目录
QueryFilter属性查询SpatialFilter空间查询Cursor游标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方法