[AE] ArcGIS Engine - 属性查询与空间查询 - QueryFilter|SpatialFilter

这里写图片描述

QueryFilter属性查询

  1. 得到将要查询的图层

     IFeatureLayer pFeatureLayer = this.axMapControl1.get_Layer(0) as IFeatureLayer;
     IFeatureSelection pFeatureSelection = pFeatureLayer as IFeatureSelection;
    
  2. 创建查询,并设置属性

     IQueryFilter pQueryFilter = new QueryFilterClass();
     pQueryFilter.WhereClause = "ID = 2"; //查询条件
    
  3. 执行查询

     pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);
    
  4. 刷新图层

     axMapControl1.Refresh();
    

SpatialFilter空间查询

  1. 得到将要查询的图层

     IFeatureLayer pFeatureLayer = axMapControl1.get_Layer(layerNum) as IFeatureLayer;
    
  2. 创建空间查询类

     ISpatialFilter spatialFilter = new SpatialFilterClass();
     //设置过滤器的Geometry属性
     IPoint pPoint = new PointClass();
     pPoint.PutCoords(e.mapX, e.mapY);
     spatialFilter.Geometry = pPoint;
     spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; //空间过滤关系
    
  3. 执行查询,并返回游标

     IFeatureCursor featureCursor = pFeatureLayer.Search(spatialFilter, false);
    
  4. 遍历结果,进行闪烁

     IFeature pFeature;
     while ((pFeature = featureCursor.NextFeature()) != null)
     {
         axMapControl1.FlashShape(pFeature.Shape); //在地图控件上闪烁显示图形
     }
    

Cursor游标

本质上是一个指向数据的指针,本身并不包含数据内容,它是连接到Row对象或要素对象的桥梁

三种类型:

  1. 查询游标
  2. 插入游标
  3. 更新游标

通过与之相适应的方法来获得,如Search、Insert、Update方法

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

geodoer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值