许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  AE开发基础实验二:空间查询之按属性查询

AE开发基础实验二:空间查询之按属性查询

阅读数 14
点赞 0
article_banner

1、主窗体对查询窗体的调用

在主窗体中添加名为“按属性查询”的按钮,并添加按钮响应 事件

通过建立CurrentMap属性得到MapControl的Map对象的属性,并加入实现调用子窗体的代码:



2、按属性查询的窗体设计

     新建一个windows窗体,按需求添加相应的 控件 。按属性查询的窗体中需包含图层名称的选择框(对应工具箱中的comboBox),选择方式的选择框(选择方式包含四种,添加到字符串集合),显示图层要素属性字段的listbox,以及图层属性值的listbox(如图所示)。同时还需要有相关筛选要素条件按钮,都为button控件。最后,还需要有包含筛选要素查询条件表达式(where 语句)的textbox控件。

      界面设计完成后注意设置相应控件的事件响应,操作的总体思路是:窗体的Load事件中加载当前地图对象中的要素图层到图层下拉列表框ComboBox 中,默认选择是第一个图层;将ComboBox中默认图层的字段读取出来放置于属性字段的ListBox里面,通过条件按钮(“=”、“>”等)构建查询的where语句传入包含筛选要素查询条件表达式(where 语句)的textbox控件中。当点击应用时执行查询。



3、按属性空间查询及属性值获取的相关代码编写

在事件下添加对应的代码,其中用于选择要素的代码如下:

 private void SelectFeaturesByAttribute()        {            //使用FeatureLayer对象的IFeatureSelection接口来执行查询操作。这里有一个接口转换操作。            IFeatureSelection featureSelection = currentFeatureLayer as IFeatureSelection;            //新建IQueryFilter接口的对象来进行where语句的定义            IQueryFilter queryFilter = new QueryFilterClass();            //设置where语句内容            queryFilter.WhereClause = textBoxWhere.Text;            //通过接口转换使用Map对象的IActiveView接口来部分刷新地图窗口,从而高亮显示查询的结果            IActiveView activeView = currentMap as IActiveView;             //根据查询选择方式的不同,得到不同的选择集            switch (comboBoxSelectMethod.SelectedIndex)            {                //在新建选择集的情况下                case 0:                    //首先使用IMap接口的ClearSelection()方法清空地图选择集                    currentMap.ClearSelection();                    //根据定义的where语句使用IFeatureSelection接口的SelectFeatures方法选择要素,并将其添加到选择集中                    featureSelection.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);                     break;                //添加到当前选择集的情况                case 1:                    featureSelection.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultAdd, false);                    break;                //从当前选择集中删除的情况                case 2:                    featureSelection.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultXOR, false);                    break;                //从当前选择集中选择的情况                case 3:                    featureSelection.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultAnd, false);                    break;                //默认为新建选择集的情况                default:                    currentMap.ClearSelection();                    featureSelection.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);                    break;            }

其中,根据定义的where语句使用IFeatureSelection接口的SelectFeatures方法选择要素,并将其添加到选择集中,通过接口转换使用Map对象的IActiveView接口来部分刷新地图窗口,从而 高亮显示 查询的结果。



属性值的获取:

整体运行结果:

可以看到按属性查询的结果被高亮显示了出来。



本文完整代码链接:链接:https://pan.baidu.com/s/1LulV1m15OKIMNKGHKAQuIQ 提取码:1234

如果有充足时间的话, 接下来的几期会持续更新 AE 空间查询及数据操作的一些内容。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空