arcgis engine 按照属性选择要素

arcgis engine 按照属性选择要素

前言
条件过滤主要用到IQueryFilter接口,其SubFields属性用于过滤指定的字段;WhereClause用于过滤指定的sql语句;
一、按照属性选择要素主要步骤:
1、由ILayer获取图层名;
2、由指定的图层名,获取图层要素IFeatureLayer
3、由指定的字段名设置IQueryFilter
4、由IFeatureLayer获取IFeatureClass,进而获得该图层属性表中的所有字段IFields以及IFeatureCursor
5、由字段名获取属性表中一个字段IField
6、由IFeatureCursor获得IDataStatistics
7、由IDataStatistics的UniqueValues属性得到IEnumerator
8、由IEnumerator得到字段的所有值
9、根据以上步骤获得属性过滤条件,字段=字段值
10、根据属性过滤条件设置IQueryFilter
11、根据IFeatureSelection选择指定属性过滤条件的要素。

二、下面代码是根据过滤条件,选择要素的方法:

 private void SelectFeatureByFilter()
        {
            IFeatureSelection pFeatureSelection = currentFeatureLayer as IFeatureSelection;
            IQueryFilter pQueryFilter = new QueryFilterClass();
            pQueryFilter.WhereClause = txtSelectResult.Text;//过滤条件,查询表达式
            IActiveView pActiveView = currentMap as IActiveView;
            switch (comBoxSelectMethod.SelectedIndex)
            {
                case 0:
                    currentMap.ClearSelection();
                    pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew,false);
                    break;
                case 1:
                     currentMap.ClearSelection();
                    pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultAdd,false);
                    break;
                case 2:
                     currentMap.ClearSelection();
                    pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultSubtract,false);
                    break;
                case 3:
                    currentMap.ClearSelection();
                    pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultAnd,false);
                    break;
                default:
                     currentMap.ClearSelection();
                    pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew,false);
                    break;

            }
            pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, pActiveView.Extent);
        }

三、运行界面及结果
在这里插入图片描述
参考:
http://blog.sciencenet.cn/blog-3373120-1110830.html
Arcgis官方构建查询表达式方法:
https://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/00s50000002t000000/

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mekeater

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

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

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

打赏作者

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

抵扣说明:

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

余额充值